home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Information / CSMP Digest / volume 3 / csmp-digest-v3-061 < prev    next >
Text File  |  1995-12-31  |  223KB  |  5,541 lines

  1. Received-Date: Thu, 29 Sep 1994 18:36:34 +0100
  2. From: pottier@clipper.ens.fr (Francois Pottier)
  3. Subject: csmp-digest-v3-061
  4. To: csmp-digest@ens.fr
  5. Date: Thu, 29 Sep 1994 18:36:24 +0100 (MET)
  6. X-Mailer: ELM [version 2.4 PL23]
  7. Mime-Version: 1.0
  8. Content-Type: text/plain; charset=ISO-8859-1
  9. Content-Transfer-Encoding: 8bit
  10. Errors-To: listman@ens.fr
  11. Reply-To: pottier@clipper.ens.fr
  12. X-Sequence: 66
  13.  
  14. C.S.M.P. Digest             Thu, 29 Sep 94       Volume 3 : Issue 61
  15.  
  16. Today's Topics:
  17.  
  18.         Alpha Wordcompletion Script
  19.         Appending data to WindowRecord
  20.         Dialogs and (de)activate events
  21.         Lets talk OpenDoc
  22.         Linking with QuickTime.xcoff for the power pc
  23.         Multiple monitors
  24.         The 'aete' resource and the Script Editor
  25.         can extensions send appleevents?
  26.  
  27.  
  28.  
  29. The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
  30. (pottier@clipper.ens.fr).
  31.  
  32. The digest is a collection of article threads from the internet newsgroup
  33. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  34. regularly and want an archive of the discussions.  If you don't know what a
  35. newsgroup is, you probably don't have access to it.  Ask your systems
  36. administrator(s) for details.  If you don't have access to news, you may
  37. still be able to post messages to the group by using a mail server like
  38. anon.penet.fi (mail help@anon.penet.fi for more information).
  39.  
  40. Each issue of the digest contains one or more sets of articles (called
  41. threads), with each set corresponding to a 'discussion' of a particular
  42. subject.  The articles are not edited; all articles included in this digest
  43. are in their original posted form (as received by our news server at
  44. nef.ens.fr).  Article threads are not added to the digest until the last
  45. article added to the thread is at least two weeks old (this is to ensure that
  46. the thread is dead before adding it to the digest).  Article threads that
  47. consist of only one message are generally not included in the digest.
  48.  
  49. The digest is officially distributed by two means, by email and ftp.
  50.  
  51. If you want to receive the digest by mail, send email to listserv@ens.fr
  52. with no subject and one of the following commands as body:
  53.     help                        Sends you a summary of commands
  54.     subscribe csmp-digest Your Name    Adds you to the mailing list
  55.     signoff csmp-digest            Removes you from the list
  56. Once you have subscribed, you will automatically receive each new
  57. issue as it is created.
  58.  
  59. The official ftp info is //ftp.dartmouth.edu/pub/csmp-digest.
  60. Questions related to the ftp site should be directed to
  61. scott.silver@dartmouth.edu. Currently no previous volumes of the CSMP
  62. digest are available there.
  63.  
  64. Also, the digests are available to WAIS users.  To search back issues
  65. with WAIS, use comp.sys.mac.programmer.src. With Mosaic, use
  66. http://www.wais.com/wais-dbs/comp.sys.mac.programmer.html.
  67.  
  68.  
  69. -------------------------------------------------------
  70.  
  71. >From tnleeuw@cs.vu.nl (Leeuw van der TN)
  72. Subject: Alpha Wordcompletion Script
  73. Date: Thu, 15 Sep 1994 12:09:12 GMT
  74. Organization: Fac. Wiskunde & Informatica, VU, Amsterdam
  75.  
  76. #This is a Tcl 'script'/procedure for use with Pete Keleher's Alpha.
  77. #It completes any word you have typed previously if you bind it to a key.
  78. #(I have it bound to opt-/ to simulate emacs' alt-/)
  79. #See the comments below for some more info. I've tested it as good as I
  80. #can, but cannot guarantee it is bug free. It had some bugs that appeared
  81. #to crash Alpha because it came into an endless loop; press cmd-. if
  82. #that happens. I don't think it will.
  83.  
  84. #If you use Alpha, then Have luck with it!
  85. #--Tim van der Leeuw
  86. #  tnleeuw@cs.vu.nl
  87. #===========================================================================
  88. # 'Word Completion', in the spirit of Paul van Mulbregt's BBXT.
  89. # Composed by Mark Nagata (nagata@kurims.kyoto-u.ac.jp) 
  90. # for Alpha 5.76, 4/22/94.
  91. # Modified by Tim van der Leeuw (tnleeuw@cs.vu.nl), 9/14/94,
  92. # In the spirit of emacs.
  93. # I have modified this routine extensively to add the ability to complete
  94. # a word in multiple ways if called repeatedly.
  95. # For this purpose, I have introduced all the global variables (starting with
  96. # __wc__) and added the first if-statement -- everything between
  97. # 'set pos [getPos]' and 'backwardWord'. In the original routine, I've changed
  98. # some existing variables to globals, prefixing their name with '__wc__'.
  99. #
  100. # This code is probably not the most efficient tcl-code, nor the most elegant
  101. # tcl-code for this problem, but hey, it is the first function I've ever
  102. # written in tcl!
  103. # If anyone has some suggestions for improvement, or
  104. # knows of a better algorithm, I would like to know it.
  105. #================================================================================
  106. set __wc__insPos -1
  107. proc wordCompletion {} {
  108.     global __wc__len __wc__prevPos __wc__insPos __wc__prevFound __wc__pat __wc__nextStart __wc__fwd
  109.     
  110.     set pos [getPos]
  111.     if $pos==$__wc__insPos {
  112.         # Cursor changed place?
  113.         set skipStr $__wc__prevFound
  114.         while 1 {    
  115.             if $__wc__fwd {
  116.                 set fndMsg "found below."
  117.             } else {
  118.                 set fndMsg "found above."
  119.             }
  120.             if {![catch {search -f $__wc__fwd -r 1 -i 0 -m 1 -- $__wc__pat $__wc__nextStart} data]} {
  121.                 set d00 [lindex $data 0]
  122.                 set beg [expr $d00+$__wc__len]
  123.                 set end [lindex $data 1]
  124.                 set __wc__prevFound [getText $d00 $end]
  125.                 if [string compare $skipStr $__wc__prevFound] {
  126.                     # Have we got the same word twice?
  127.                     set txt [getText $beg $end]
  128.                     deleteText $__wc__prevPos $__wc__insPos
  129.                     goto $__wc__prevPos
  130.                     insertText $txt
  131.                     message $fndMsg
  132.                     # Set a number of globals for possible next go-around
  133.                     set __wc__insPos [getPos]
  134.                     if $__wc__fwd {
  135.                         # Search Forwards
  136.                         set __wc__nextStart $end
  137.                         # End of found word
  138.                     } else {
  139.                         # Search Backwards
  140.                         set __wc__nextStart [expr $d00 - $__wc__len]
  141.                         # Before start of found word
  142.                         if $__wc__nextStart<=0 {
  143.                             set __wc__fwd 1
  144.                             set __wc__nextStart $__wc__insPos
  145.                         }
  146.                     }
  147.                     return
  148.                 } else {
  149.                     # Move start of search after finding string again
  150.                     if $__wc__fwd {
  151.                         # Searching Forwards
  152.                         set __wc__nextStart $end
  153.                         # End of found word
  154.                     } else {
  155.                         # Still Searching Backwards
  156.                         set __wc__nextStart [expr $d00 - $__wc__len]
  157.                         # Before start of found word
  158.                         if $__wc__nextStart<=0 {
  159.                             set __wc__fwd 1
  160.                             set __wc__nextStart $__wc__insPos
  161.                         }
  162.                     }
  163.                 }
  164.                 # End if string compare 
  165.             } else {
  166.                 # Search string not found
  167.                 if $__wc__fwd {
  168.                     # We were already looking forward, so the word is not in the file
  169.                     message "Not found."
  170.                     set __wc__insPos -1
  171.                     goto $pos
  172.                     backwardWordSelect
  173.                     return
  174.                 } else {
  175.                     # start looking forward
  176.                     set __wc__fwd 1
  177.                     set __wc__nextStart $__wc__insPos
  178.                 }
  179.             }
  180.             
  181.         }
  182.     }
  183.     backwardWord
  184.     # Start new search for WordCompletion
  185.     set start [getPos]
  186.     set one [getText $start $pos]
  187.     set __wc__len [expr $pos-$start]
  188.     set __wc__pat [append one {[a-zA-Z0-9_]+}]
  189.     set start [expr $start-1]
  190.     if {![catch {search -f 0 -r 1 -i 0 -m 1 -- $__wc__pat $start} data]} {
  191.         set d00 [lindex $data 0]
  192.         set beg [expr $d00+$__wc__len]
  193.         set end [lindex $data 1]
  194.         set __wc__prevFound [getText $d00 $end ]
  195.         set txt [getText $beg $end]
  196.         goto $pos
  197.         insertText $txt
  198.         message "found above."
  199.         # Set a number of globals for possible next go-around
  200.         set __wc__insPos [getPos]
  201.         set __wc__prevPos $pos
  202.         set __wc__nextStart [expr $d00-$__wc__len]
  203.         set __wc__fwd 0
  204.         return
  205.     }
  206.     if {![catch {search -f 1 -r 1 -i 0 -m 1 -- $__wc__pat $pos} data]} {
  207.         set __wc__prevFound [getText [lindex $data 0] [lindex $data 1] ]
  208.         set beg [expr [lindex $data 0]+$__wc__len]
  209.         set end [lindex $data 1]
  210.         set txt [getText $beg $end]
  211.         goto $pos
  212.         insertText $txt
  213.         message "found below."
  214.         # Set a number of globals for possible next go-around
  215.         set __wc__insPos [getPos]
  216.         set __wc__prevPos $pos
  217.         set __wc__nextStart $end
  218.         set __wc__fwd 1
  219.         return
  220.     }
  221.     goto $pos
  222.     backwardWordSelect
  223. }
  224.  
  225.  
  226.  
  227. # This is all due to the idea of Paul van Mulbregt. In his documentation 
  228. # of his BBEdit BBExtension (info-mac/text/bbedit-fl-package-11.hqx), 
  229. # he explains:
  230. # --  From the documentation written by        --
  231. # --  Paul van Mulbregt (paulvm@dragonsys.com) --
  232. # Word Completion
  233. # This extension saves typing, as well as making sure variable names are 
  234. # correct.  While typing the following C code, there is no need to type all 
  235. # of the second occurrence of verySpecialInt.  One could copy and paste, but 
  236. # another way is to type a few letters, and select the Word Completion 
  237. # Extension.
  238. #     int verySpecialInt = 10;
  239. #     while(verySp                                                    
  240. # becomes
  241. #     int verySpecialInt = 10;
  242. #     while(verySpecialInt                                             
  243. #                                                     
  244. # Word Completion will look back in the code to find the first match and then 
  245. # extend the current occurrence to match the previous occurrence.  If a match 
  246. # is not found looking backwards, then it looks forwards.  If not found 
  247. # forwards, the word is selected.  This is a quick way to save on typing, 
  248. # good for helping prevent RSI, but perhaps more importantly, to make sure 
  249. # that variable names are spelt correctly.
  250. # There is no user interface for Word Completion.
  251. # The usefulness of this extension is greatly enhanced if the extension is 
  252. # bound to a key!
  253. # -- end of Paul van Mulbregt's explanation. --
  254.  
  255.  
  256.  
  257.  
  258. ---------------------------
  259.  
  260. >From rollin@newton.apple.com (Keith Rollin)
  261. Subject: Appending data to WindowRecord
  262. Date: Tue, 30 Aug 1994 09:42:08 -0800
  263. Organization: Apple ][ -> Mac -> Taligent -> Newton -> Windows?
  264.  
  265. In article <33do4d$abh@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas
  266. Wallden) wrote:
  267. >
  268. >A great way to extend WindowRecords is to declare your own data type with
  269. >a WindowRecord as the first item.
  270. >
  271. >E.g.,
  272. >
  273. >struct tMyWinData {
  274. >   //  This must come first!
  275. >   WindowRecord   winRec;
  276. >
  277. >   //  Additional window-specific data here...
  278. >   Handle         aHandle;
  279. >   Ptr            aPtr;
  280. >};
  281. >typedef struct tMyWinData tMyWinData;
  282. >typedef tMyWinData *tMyWinPtr;
  283. >
  284. >The trick now is that you can typecast any window pointer to tMyWinPtr (and
  285. >back) and access your window-specific data fields. You might want to place
  286. >your application's unique creator code in the WindowRecord refCon field and
  287. >check it first to be sure you have a window that belongs to your program.
  288. >
  289. >I use this all the time and it is useful in many other places where the
  290. >system gives you a pointer to an object (VBL tasks, ParamBlocks, ...) and
  291. >you need to store extra data. No need to use any globals for this stuff!
  292.  
  293. You know, this is an often-used trick, but I've got a sneaking suspicion
  294. that it might not be a good idea in the long run. The reason for this
  295. feeling is because of something I read in "develop" a while back. In the
  296. article that Dean Yu (I think) wrote on floating windows, there was
  297. mention of converting the Windows.h interfaces over to using WindowRefs
  298. instead of WindowPtrs. (Indeed, users of ETO #15 will see that this change
  299. has already occured.) This change was being done to prepare developers for
  300. the day when windows would change from being accessed directly via
  301. pointers, to the day when they would be accessed via abstract references
  302. that could be mapped by the Window Manager internally to the data
  303. structures representing a window. It seems to me that in such a world, you
  304. could not be able to either a) append your custom data to the standard
  305. window definition, or b) retrieve it given a simple WindowRef.
  306.  
  307. I recommend using the refCon field.
  308.  
  309. - --------------------------------------------------------------------------
  310. Keith Rollin --- Phantom Programmer --- Apple Computer, Inc. --- Team Newton
  311.  
  312. +++++++++++++++++++++++++++
  313.  
  314. >From jonasw@lysator.liu.se (Jonas Wallden)
  315. Date: 31 Aug 1994 15:19:10 GMT
  316. Organization: (none)
  317.  
  318. rollin@newton.apple.com (Keith Rollin) writes:
  319. > I (Jonas) wrote:
  320. >>
  321. >>A great way to extend WindowRecords is to declare your own data type with
  322. >>a WindowRecord as the first item.
  323. >>
  324. >> [code example removed]
  325. >>
  326. >>The trick now is that you can typecast any window pointer to tMyWinPtr (and
  327. >>back) and access your window-specific data fields. You might want to place
  328. >>your application's unique creator code in the WindowRecord refCon field and
  329. >>check it first to be sure you have a window that belongs to your program.
  330. >>
  331. >>I use this all the time and it is useful in many other places where the
  332. >>system gives you a pointer to an object (VBL tasks, ParamBlocks, ...) and
  333. >>you need to store extra data. No need to use any globals for this stuff!
  334. >
  335. >You know, this is an often-used trick, but I've got a sneaking suspicion
  336. >that it might not be a good idea in the long run. The reason for this
  337. >feeling is because of something I read in "develop" a while back. In the
  338. >article that Dean Yu (I think) wrote on floating windows, there was
  339. >mention of converting the Windows.h interfaces over to using WindowRefs
  340. >instead of WindowPtrs.
  341.  
  342. Yes, now that you mention it I remember that article. Your point is very
  343. valid, and should be taken into consideration for code that one expects
  344. to use for a long time. However, like you said yourself, this trick is
  345. widely used and a lot of applications would break if things changed tomorrow.
  346.  
  347. > Indeed, users of ETO #15 will see that this change has already occured.
  348.  
  349. I haven't seen it in the Universal Interfaces included on CW4. Are the ones
  350. on ETO #15 different?
  351.  
  352. I agree that hiding the internal structure of things is a good thing as it
  353. will make it easier for Apple to change the system without breaking
  354. applications.
  355.  
  356. >I recommend using the refCon field.
  357.  
  358. Which leads us back to the original problem where the poster was afraid to
  359. treat this field as a pointer in case some other window appeared in his
  360. application's window list (CommsToolbox (did I spell it right? :-) windows
  361. were mentioned as an example).
  362.  
  363. One can of course first check the windowKind field, which doesn't have any
  364. accessor function...
  365.  
  366. >Keith Rollin --- Phantom Programmer --- Apple Computer, Inc. --- Team Newton
  367.  
  368. --
  369. `.`.   Jonas Wallden                    `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  370. `.`.`.   Internet: jonasw@lysator.liu.se  `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  371. `.`.`.`.   AppleLink: sw1369                `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  372.  
  373. +++++++++++++++++++++++++++
  374.  
  375. >From bb@lightside.com (Bob Bradley)
  376. Date: Tue, 30 Aug 1994 01:50:06 -0800
  377. Organization: SS Software Inc.
  378.  
  379. In article <34271e$i33@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas
  380. Wallden) wrote:
  381.  
  382. > One can of course first check the windowKind field, which doesn't have any
  383. > accessor function...
  384.  
  385. The only problem I've found with this is when using Dialogs which don't
  386. work properly with IsDialogEvent and DialogSelect if you change the
  387. windowKind field to something other than dialogKind. The only solution
  388. I've found in that case is to append data to the WindowRecord.
  389.  
  390. +++++++++++++++++++++++++++
  391.  
  392. >From mhl@icf.hrb.com (MARK H. LINTON)
  393. Date: 31 Aug 94 15:39:42 EST
  394. Organization: HRB Systems, Inc.
  395.  
  396. In article <34271e$i33@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas Wallden) writes:
  397. > rollin@newton.apple.com (Keith Rollin) writes:
  398. >> I (Jonas) wrote:
  399. >>>
  400. >>>A great way to extend WindowRecords is to declare your own data type with
  401. >>>a WindowRecord as the first item.
  402. >>>
  403. >>
  404. >>You know, this is an often-used trick, but I've got a sneaking suspicion
  405. >>that it might not be a good idea in the long run. The reason for this
  406. >>feeling is because of something I read in "develop" a while back. 
  407. > Yes, now that you mention it I remember that article. Your point is very
  408. > valid, and should be taken into consideration for code that one expects
  409. > to use for a long time. 
  410.    [snip]
  411. >>I recommend using the refCon field.
  412. > Which leads us back to the original problem where the poster was afraid to
  413. > treat this field as a pointer in case some other window appeared in his
  414. > application's window list (CommsToolbox (did I spell it right? :-) windows
  415. > were mentioned as an example).
  416. > One can of course first check the windowKind field, which doesn't have any
  417. > accessor function...
  418. >>Keith Rollin --- Phantom Programmer --- Apple Computer, Inc. --- Team Newton
  419.  
  420. When my applications create their own windows, they allocate a relocatable
  421. block (via NewHandle) to a structure describing the window. The structure of
  422. this information varies based on the particular application, but always
  423. includes, at minimum, as its first field an identifier.
  424.  
  425. Please consider the following pseudo-code, as I am not at my Macintosh at the
  426. moment.
  427.  
  428. typedef struct MinWinInfo {
  429.     OSType identifier;
  430. } MinWinInfoRecord, *MinWinInfoPtr, **MinWinInfoHandle;
  431.  
  432. Boolean OwnWindow(WindowPtr aWindow) {
  433.     Boolean ownWindow = false;
  434.     MinWinInfoHandle theInfoHandle;
  435.  
  436.     if (aWindow != nil) { /* can only own existent windows */
  437.         theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  438.         if (theInfoHandle != nil) { /* and we always add a refCon */
  439.             if ((**theInfoHandle).identifier == kThisAppSignature) {
  440.                 ownWindow = true; /* and the first four bytes match our sig */
  441.             }
  442.         }
  443.     }
  444.     return ownWindow;
  445. }
  446.  
  447. So whenever I need to see whether a window is mine I just call OwnWindow.
  448.  
  449. Does this help? Or did I miss the question entirely?
  450.  
  451. Mark
  452. - --------
  453. I don't know whether my employer has opinions.
  454.  
  455. +++++++++++++++++++++++++++
  456.  
  457. >From jonasw@lysator.liu.se (Jonas Wallden)
  458. Date: 31 Aug 1994 21:35:02 GMT
  459. Organization: (none)
  460.  
  461. mhl@icf.hrb.com (MARK H. LINTON) writes:
  462. >
  463. >When my applications create their own windows, they allocate a relocatable
  464. >block (via NewHandle) to a structure describing the window. The structure of
  465. >this information varies based on the particular application, but always
  466. >includes, at minimum, as its first field an identifier.
  467. >
  468. >Please consider the following pseudo-code, as I am not at my Macintosh at the
  469. >moment.
  470. >
  471. >typedef struct MinWinInfo {
  472. >    OSType identifier;
  473. >} MinWinInfoRecord, *MinWinInfoPtr, **MinWinInfoHandle;
  474. >
  475. >Boolean OwnWindow(WindowPtr aWindow) {
  476. >    Boolean ownWindow = false;
  477. >    MinWinInfoHandle theInfoHandle;
  478. >
  479. >    if (aWindow != nil) { /* can only own existent windows */
  480. >        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  481. >        if (theInfoHandle != nil) { /* and we always add a refCon */
  482. >            if ((**theInfoHandle).identifier == kThisAppSignature) {
  483.  
  484. The problem is that we can't be 100% sure the RefCon field holds a pointer
  485. or handle for *all* windows as some windows not created by our application
  486. can appear in our WindowList. These external windows may use the RefCon
  487. field in any way (e.g. hold flags or whatever), making it impossible to
  488. dereference the value to check for the magic cookie.
  489.  
  490. >                ownWindow = true; /* and the first four bytes match our sig */
  491. >            }
  492. >        }
  493. >    }
  494. >    return ownWindow;
  495. >}
  496. >
  497. >So whenever I need to see whether a window is mine I just call OwnWindow.
  498. >
  499. >Does this help? Or did I miss the question entirely?
  500.  
  501. See above.
  502.  
  503. Hopefully the Apple guys come up with a nice improved Window Manager which
  504. supposedly is in the works. From what I've heard it will support floating
  505. windows directly (yes!), and that alone will make a lot of ugly code unneeded.
  506.  
  507. Anyone else mad at not getting modeless dialogs to work correctly together
  508. with floating windows? Yeah, I thought so...
  509. --
  510. `.`.   Jonas Wallden                    `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  511. `.`.`.   Internet: jonasw@lysator.liu.se  `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  512. `.`.`.`.   AppleLink: sw1369                `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  513.  
  514. +++++++++++++++++++++++++++
  515.  
  516. >From h+@nada.kth.se (Jon W{tte)
  517. Date: Thu, 01 Sep 1994 14:55:07 +0200
  518. Organization: Royal Institute of Something or other
  519.  
  520. In article <342t26$1ia@newsy.ifm.liu.se>,
  521. jonasw@lysator.liu.se (Jonas Wallden) wrote:
  522.  
  523. >The problem is that we can't be 100% sure the RefCon field holds a pointer
  524. >or handle for *all* windows as some windows not created by our application
  525. >can appear in our WindowList. These external windows may use the RefCon
  526.  
  527. All windows in our window list that are not our own have 
  528. negative windowKinds, or at least windowKinds < 8.
  529.  
  530. Cheers,
  531.  
  532.                     / h+
  533.  
  534.  
  535. --
  536.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  537.  
  538.   Reality exists only in your imagination.
  539.  
  540.  
  541. +++++++++++++++++++++++++++
  542.  
  543. >From mhl@icf.hrb.com (MARK H. LINTON)
  544. Date: 1 Sep 94 08:50:27 EST
  545. Organization: HRB Systems, Inc.
  546.  
  547. In article <342t26$1ia@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas Wallden) writes:
  548. > mhl@icf.hrb.com (MARK H. LINTON) writes:
  549. >>
  550. >>    if (aWindow != nil) { /* can only own existent windows */
  551. >>        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  552. >>        if (theInfoHandle != nil) { /* and we always add a refCon */
  553. >>            if ((**theInfoHandle).identifier == kThisAppSignature) {
  554. > The problem is that we can't be 100% sure the RefCon field holds a pointer
  555. > or handle for *all* windows as some windows not created by our application
  556. > can appear in our WindowList. These external windows may use the RefCon
  557. > field in any way (e.g. hold flags or whatever), making it impossible to
  558. > dereference the value to check for the magic cookie.
  559.  
  560. Jonas,
  561.     Correct me if I'm wrong here. I did not say that the refCon WAS a handle.
  562. The cast on the GetWRefCon tells the compiler to ASSUME that the refCon is
  563. a handle. If it is flags or maybe a handle to another type of structure used by
  564. another type of window. HOWEVER, it is highly unlikely that the first four
  565. bytes of the memory arrived at by double de-referencing (**) the refCon will
  566. contain my applications signature, whether the assumption was true or not,
  567. UNLESS this is one of my windows.
  568.  
  569. BTW my applications require System 7 and at least a 68030 to run, so I do not
  570. care if in my (**) I come across an odd address ;^)
  571.  
  572. Mark
  573.  
  574. +++++++++++++++++++++++++++
  575.  
  576. >From dazuma@cco.caltech.edu (Daniel Azuma)
  577. Date: Thu, 01 Sep 1994 08:06:29 -0700
  578. Organization: California Institute of Technology
  579.  
  580. mhl@icf.hrb.com (MARK H. LINTON) wrote:
  581.  
  582. >     Correct me if I'm wrong here. I did not say that the refCon WAS a handle.
  583. > The cast on the GetWRefCon tells the compiler to ASSUME that the refCon is
  584. > a handle. If it is flags or maybe a handle to another type of structure used
  585. > by another type of window. HOWEVER, it is highly unlikely that the first four
  586. > bytes of the memory arrived at by double de-referencing (**) the refCon will
  587. > contain my applications signature, whether the assumption was true or not,
  588. > UNLESS this is one of my windows.
  589. > BTW my applications require System 7 and at least a 68030 to run, so I do not
  590. > care if in my (**) I come across an odd address ;^)
  591.  
  592. You still have to worry, even if you require an '020/'030. Trying to
  593. dereference addresses in a certain range-- I don't know the range, but the
  594. famous constant 0x50FFC001 is within it-- will cause a bus error.
  595.  
  596. What I've ended up doing is keeping my own data structure listing all the
  597. windows I "know about", including modeless dialogs. My array keeps the
  598. WindowPtr, a constant describing the kind of window, and some other fields
  599. containing various other info. Then, when I need to know something about a
  600. particular window (say, from FrontWindow()), I look the WindowPtr up in
  601. the table and snatch whatever info I need. If the WindowPtr isn't there, I
  602. know it's a window someone else rudely :) stuck into my window list. Not
  603. the most efficient way of doing things, I'm sure, but I think it's
  604. relatively un-breakable.
  605.  
  606. And, of course, later I can replace the WindowPtr field with a WindowRef
  607. and have it work the same way.
  608.  
  609. Dan
  610.  
  611. - ----------------------------------------------------------------
  612.   Daniel Azuma            | "Rejoice in the Lord always; again I
  613.   Caltech                 |  will say, Rejoice..."
  614.   dazuma@cco.caltech.edu  |              --Philippians 4:4
  615. - ----------------------------------------------------------------
  616.  
  617. +++++++++++++++++++++++++++
  618.  
  619. >From jonasw@lysator.liu.se (Jonas Wallden)
  620. Date: 1 Sep 1994 15:54:15 GMT
  621. Organization: (none)
  622.  
  623. mhl@icf.hrb.com (MARK H. LINTON) writes:
  624.  
  625. >In article <342t26$1ia@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas Wallden) writes:
  626. >> mhl@icf.hrb.com (MARK H. LINTON) writes:
  627. >>>
  628. >>>    if (aWindow != nil) { /* can only own existent windows */
  629. >>>        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  630. >>>        if (theInfoHandle != nil) { /* and we always add a refCon */
  631. >>>            if ((**theInfoHandle).identifier == kThisAppSignature) {
  632. >> 
  633. >> The problem is that we can't be 100% sure the RefCon field holds a pointer
  634. >> or handle for *all* windows as some windows not created by our application
  635. >> can appear in our WindowList. These external windows may use the RefCon
  636. >> field in any way (e.g. hold flags or whatever), making it impossible to
  637. >> dereference the value to check for the magic cookie.
  638. >> 
  639. >
  640. >Jonas,
  641. >    Correct me if I'm wrong here. I did not say that the refCon WAS a handle.
  642. >The cast on the GetWRefCon tells the compiler to ASSUME that the refCon is
  643. >a handle. If it is flags or maybe a handle to another type of structure used
  644. >by another type of window. HOWEVER, it is highly unlikely that the first four
  645. >bytes of the memory arrived at by double de-referencing (**) the refCon will
  646. >contain my applications signature, whether the assumption was true or not,
  647. >UNLESS this is one of my windows.
  648. >
  649. >BTW my applications require System 7 and at least a 68030 to run, so I do not
  650. >care if in my (**) I come across an odd address ;^)
  651.  
  652. But you can get address errors on these machines as well! How do you think
  653. EvenBetterBusError works?
  654.  
  655. And like I, Jon and others have said earlier, one can check the windowKind
  656. field first to avoid these cases. But that is just as bad as appending data to
  657. the WindowRecord as long as there isn't any high-level (i.e. future-compatible)
  658. way to do this.
  659.  
  660. --
  661. `.`.   Jonas Wallden                    `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  662. `.`.`.   Internet: jonasw@lysator.liu.se  `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  663. `.`.`.`.   AppleLink: sw1369                `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  664.  
  665. +++++++++++++++++++++++++++
  666.  
  667. >From ivanski@world.std.com (Ivan M CaveroBelaunde)
  668. Date: Thu, 1 Sep 1994 16:15:59 GMT
  669. Organization: The World Public Access UNIX, Brookline, MA
  670.  
  671. jonasw@lysator.liu.se (Jonas Wallden) writes:
  672. >>Boolean OwnWindow(WindowPtr aWindow) {
  673. >>    Boolean ownWindow = false;
  674. >>    MinWinInfoHandle theInfoHandle;
  675. >>
  676. >>    if (aWindow != nil) { /* can only own existent windows */
  677. >>        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  678. >>        if (theInfoHandle != nil) { /* and we always add a refCon */
  679. >>            if ((**theInfoHandle).identifier == kThisAppSignature) {
  680. >The problem is that we can't be 100% sure the RefCon field holds a pointer
  681. >or handle for *all* windows as some windows not created by our application
  682. >can appear in our WindowList. These external windows may use the RefCon
  683. >field in any way (e.g. hold flags or whatever), making it impossible to
  684. >dereference the value to check for the magic cookie.
  685.  
  686. So use a "ValidHandle" routine to determine that the refcon is a handle
  687. before messing with it:
  688.     - Check that it's even.
  689.     - Check that it's below BufPtr.
  690.     - Do both checks again for the "assumed" master pointer.
  691.     - Call HandleZone.
  692.  
  693. in that order. Then you know you have a handle you can safely dereference.
  694.  
  695. -Ivan
  696. - -
  697. Ivan Cavero Belaunde (ivanski@world.std.com)
  698. Avid VideoShop Project Lead
  699. Avid Technology, Inc.
  700.  
  701. +++++++++++++++++++++++++++
  702.  
  703. >From mhl@icf.hrb.com (MARK H. LINTON)
  704. Date: 1 Sep 94 13:27:35 EST
  705. Organization: HRB Systems, Inc.
  706.  
  707. From: jonasw@lysator.liu.se (Jonas Wallden)
  708. >>In article <342t26$1ia@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas Wallden) writes:
  709. >>> mhl@icf.hrb.com (MARK H. LINTON) writes:
  710. >>>>
  711. >>>>    if (aWindow != nil) { /* can only own existent windows */
  712. >>>>        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  713. >>>>        if (theInfoHandle != nil) { /* and we always add a refCon */
  714. >>>>            if ((**theInfoHandle).identifier == kThisAppSignature) {
  715. >>> 
  716. >>> The problem is that we can't be 100% sure the RefCon field holds a pointer
  717. >>> or handle for *all* windows as some windows not created by our application
  718. >>> can appear in our WindowList. [snip]
  719. >>
  720. >>Jonas,
  721. >>    Correct me if I'm wrong here. I did not say that the refCon WAS a handle.
  722. >>The cast on the GetWRefCon tells the compiler to ASSUME that the refCon is
  723. >>a handle. [snip]
  724. >>
  725. >>BTW my applications require System 7 and at least a 68030 to run, so I do not
  726. >>care if in my (**) I come across an odd address ;^)
  727. >
  728. >But you can get address errors on these machines as well! How do you think
  729. >EvenBetterBusError works?
  730. >
  731.  
  732. Gosh, I guess I was wrong :) and, yes, I have EvenBetterBusError installed, but
  733. I seem to recall the release notes saying something about needing to allow
  734. certain Toolbox routines to do things that would normally trigger EBBE. Perhaps
  735. this is the sort of thing that required that. (?)
  736.  
  737. >
  738. >And like I, Jon and others have said earlier, one can check the windowKind
  739. >field first to avoid these cases. But that is just as bad as appending data to
  740. >the WindowRecord as long as there isn't any high-level (i.e. future-compatible)
  741. >way to do this.
  742. >
  743.  
  744. Yes, I agree. I really do not like the windowKind check.
  745.  
  746. From: ivanski@world.std.com (Ivan M CaveroBelaunde)
  747. >
  748. >So use a "ValidHandle" routine to determine that the refcon is a handle
  749. >before messing with it:
  750. >    - Check that it's even.
  751. >    - Check that it's below BufPtr.
  752. >    - Do both checks again for the "assumed" master pointer.
  753. >    - Call HandleZone.
  754. >
  755. >in that order. Then you know you have a handle you can safely dereference.
  756. >
  757.  
  758. Hey! Way Cool! Where I originally said  "if (theInfoHandle != nil) {", I really
  759. should have said "if (ValidHandle((Handle)theInfoHandle)) {".
  760.  
  761. Got any CODE? ;^)
  762.  
  763. From: dazuma@cco.caltech.edu (Daniel Azuma)
  764. >
  765. >You still have to worry, even if you require an '020/'030. Trying to
  766. >dereference addresses in a certain range-- I don't know the range, but the
  767. >famous constant 0x50FFC001 is within it-- will cause a bus error.
  768. >
  769.  
  770. Yes. I keep getting told this :^) and pardon my ignorance but what is that
  771. famous constant?
  772.  
  773. >
  774. >What I've ended up doing is keeping my own data structure listing all the
  775. >windows I "know about", including modeless dialogs. My array keeps the
  776. >WindowPtr, a constant describing the kind of window, and some other fields
  777. >containing various other info. Then, when I need to know something about a
  778. >particular window (say, from FrontWindow()), I look the WindowPtr up in
  779. >the table and snatch whatever info I need. If the WindowPtr isn't there, I
  780. >know it's a window someone else rudely :) stuck into my window list. Not
  781. >the most efficient way of doing things, I'm sure, but I think it's
  782. >relatively un-breakable.
  783. >
  784. >And, of course, later I can replace the WindowPtr field with a WindowRef
  785. >and have it work the same way.
  786. >
  787.  
  788. Until today I would have gaged at the extra baggage here. But I have been
  789. following this other thread (Subject: Selecting Window via menus) on which was
  790. recently posted a reasonable solution (From: Matt Slot 
  791. <fprefect@engin.umich.edu>) that required a similar structure. Now that I see
  792. the two side by side, I might try to roll them together and come up with a
  793. reasonable "Window Manager". Hey, now wasn't that Jonas' original point? :)
  794.  
  795. Mark
  796.  
  797.  
  798. +++++++++++++++++++++++++++
  799.  
  800. >From dazuma@cco.caltech.edu (Daniel Azuma)
  801. Date: Thu, 01 Sep 1994 11:37:34 -0700
  802. Organization: California Institute of Technology
  803.  
  804. mhl@icf.hrb.com (MARK H. LINTON) wrote:
  805.  
  806. > From: ivanski@world.std.com (Ivan M CaveroBelaunde)
  807. > >
  808. > >So use a "ValidHandle" routine to determine that the refcon is a handle
  809. > >before messing with it:
  810. > >       - Check that it's even.
  811. > >       - Check that it's below BufPtr.
  812. > >       - Do both checks again for the "assumed" master pointer.
  813. > >       - Call HandleZone.
  814. > >
  815. > >in that order. Then you know you have a handle you can safely dereference.
  816.  
  817. That's pretty cool, yeah! My question is, how would it work when running
  818. PPC native? I'm kinda clueless about PowerMac memory management...
  819.  
  820. > >You still have to worry, even if you require an '020/'030. Trying to
  821. > >dereference addresses in a certain range-- I don't know the range, but the
  822. > >famous constant 0x50FFC001 is within it-- will cause a bus error.
  823. > Yes. I keep getting told this :^) and pardon my ignorance but what is that
  824. > famous constant?
  825.  
  826. It's the long that EBBE stuffs into nil. Supposedly, it's designed to
  827. cause a bus or address error on any mac with any memory configuration. I
  828. don't know exactly what's so special about this constant as opposed to,
  829. say, 0x60FFC001, though. :)
  830.  
  831. Dan
  832.  
  833. - ----------------------------------------------------------------
  834.   Daniel Azuma            | "Rejoice in the Lord always; again I
  835.   Caltech                 |  will say, Rejoice..."
  836.   dazuma@cco.caltech.edu  |              --Philippians 4:4
  837. - ----------------------------------------------------------------
  838.  
  839. +++++++++++++++++++++++++++
  840.  
  841. >From peter.lewis@info.curtin.edu.au (Peter N Lewis)
  842. Date: Fri, 02 Sep 1994 11:37:10 +0800
  843. Organization: NCRPDA, Curtin University
  844.  
  845. In article <1994Sep1.085027.21786@hrbicf>, mhl@icf.hrb.com (MARK H.
  846. LINTON) wrote:
  847.  
  848. >BTW my applications require System 7 and at least a 68030 to run, so I do not
  849. >care if in my (**) I come across an odd address ;^)
  850.  
  851. Yeah, but what if it is an address that isn't valid, or isn't mapped, or
  852. whatever.  It'll still go bang.  You need to use some variant of
  853. ValidHandle, checking that the ptr is even, and inside your heap, and that
  854. the ptr points to a ptr that is even and in your heap are definitely good
  855. ideas if you are going to use this scheme.
  856.    Peter.
  857. -- 
  858. Peter N Lewis <peter.lewis@info.curtin.edu.au> - Macintosh TCP fingerpainter
  859.  
  860. +++++++++++++++++++++++++++
  861.  
  862. >From h+@nada.kth.se (Jon W{tte)
  863. Date: Fri, 02 Sep 1994 09:18:41 +0200
  864. Organization: Royal Institute of Something or other
  865.  
  866. In article <344tf7$4d2@newsy.ifm.liu.se>,
  867. jonasw@lysator.liu.se (Jonas Wallden) wrote:
  868.  
  869. >And like I, Jon and others have said earlier, one can check the windowKind
  870. >field first to avoid these cases. But that is just as bad as appending data to
  871. >the WindowRecord as long as there isn't any high-level (i.e. future-compatible)
  872. >way to do this.
  873.  
  874. I do a #define GetWindowKind(w) ((WindowPeek)w)->windowKind
  875.  
  876. Then when the real call comes around... The interesting thing 
  877. is that Apple promises that if you follow the current API, and 
  878. READ but not WRITE where there are no accessor functions, there 
  879. will be a compatiblity mode. However, to take advantage of the 
  880. new features, you need a partial re-design and total recompile.
  881.  
  882. Cheers,
  883.  
  884.                     / h+
  885.  
  886.  
  887. --
  888.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  889.  
  890.   Reality exists only in your imagination.
  891.  
  892.  
  893. +++++++++++++++++++++++++++
  894.  
  895. >From siegel@netcom.com (Rich Siegel)
  896. Date: Fri, 2 Sep 1994 18:02:45 GMT
  897. Organization: Bare Bones Software
  898.  
  899. In article <dazuma-0109941137340001@m22108.esl.com> dazuma@cco.caltech.edu (Daniel Azuma) writes:
  900. >> From: ivanski@world.std.com (Ivan M CaveroBelaunde)
  901. >> >
  902. >> >So use a "ValidHandle" routine to determine that the refcon is a handle
  903. >> >before messing with it:
  904. >> >       - Check that it's even.
  905. >> >       - Check that it's below BufPtr.
  906. >> >       - Do both checks again for the "assumed" master pointer.
  907. >> >       - Call HandleZone.
  908. >> >
  909. >> >in that order. Then you know you have a handle you can safely dereference.
  910. >
  911. >That's pretty cool, yeah! My question is, how would it work when running
  912. >PPC native? I'm kinda clueless about PowerMac memory management...
  913.  
  914. It works just the same. The second word in "Power Macintosh" is
  915. "Macintosh", and that's just what a Power Macintosh is, from the
  916. application programmer's point of view.
  917.  
  918. Incidentally, you probably only want to use Ivan's handle check in
  919. debugging code, not in shipping code: HandleZone() doesn't come for
  920. free.
  921.  
  922. R.
  923. -- 
  924. Rich Siegel % siegel@netcom.com    % President & CEO, Bare Bones Software Inc.
  925. --> For information about BBEdit, finger bbedit@world.std.com <--
  926.  
  927. +++++++++++++++++++++++++++
  928.  
  929. >From h+@nada.kth.se (Jon W{tte)
  930. Date: Sun, 04 Sep 1994 13:17:08 +0200
  931. Organization: Royal Institute of Something or other
  932.  
  933. In article <dazuma-0109941137340001@m22108.esl.com>,
  934. dazuma@cco.caltech.edu (Daniel Azuma) wrote:
  935.  
  936. >It's the long that EBBE stuffs into nil. Supposedly, it's designed to
  937. >cause a bus or address error on any mac with any memory configuration. I
  938. >don't know exactly what's so special about this constant as opposed to,
  939. >say, 0x60FFC001, though. :)
  940.  
  941. 50ff is also an illegal instruction, so if you JUMP to 0L, 
  942. you'll get an immediate break.
  943.  
  944. Cheers,
  945.  
  946.                         / h+
  947.  
  948.  
  949. --
  950.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  951.  Engineering: "How will this work?" Science: "Why will this work?" Management:
  952.  "When will this work?"  Liberal Arts: "Do you want fries with that?"
  953.                      -- Jesse N. Schell
  954.  
  955.  
  956. +++++++++++++++++++++++++++
  957.  
  958. >From Ron_Hunsinger@bmug.org (Ron Hunsinger)
  959. Date: Wed,  7 Sep 94 03:23:37 PST
  960. Organization: Berkeley Macintosh Users Group
  961.  
  962. siegel@netcom.com writes:
  963.  
  964. >Incidentally, you probably only want to use Ivan's handle check in
  965. >debugging code, not in shipping code: HandleZone() doesn't come for
  966. >free.
  967.  
  968. And if you were a ship-builder, I suppose your ships would only be 
  969. equipped with life boats while you tested them in the harbor, but you 
  970. would remove all that extra baggage before sending them out to sea?  
  971.  
  972. -Ron Hunsinger
  973.  
  974. +++++++++++++++++++++++++++
  975.  
  976. >From kluev@jonathan.srcc.msu.su (Kluev)
  977. Date: Wed, 7 Sep 94 20:22:41 +0400
  978. Organization: (none)
  979.  
  980. In article <9668AA8B9BCC.DC7EB6@klkmac014.nada.kth.se>
  981. h+@nada.kth.se (Jon W{tte) wrote:
  982.  
  983. In article <342t26$1ia@newsy.ifm.liu.se>,
  984. jonasw@lysator.liu.se (Jonas Wallden) wrote:
  985. >
  986. > >The problem is that we can't be 100% sure the RefCon field holds a
  987. pointer
  988. > >or handle for *all* windows as some windows not created by our
  989. application
  990. > >can appear in our WindowList. These external windows may use the
  991. RefCon
  992. >
  993. > All windows in our window list that are not our own have 
  994. > negative windowKinds, or at least windowKinds < 8.
  995.  
  996. The problem doesn't go away: how to distinguish system dialog and
  997. my dialog? (windowKind = dialogKind = 2 in this case). The only
  998. compatible solution is the one suggested by someone else: keep your
  999. own list of windows in addition to standard one
  1000. (FrontWindow()-> nextWindow-> nextWindow-> ...).
  1001.  
  1002. Michael Kluev.
  1003.  
  1004. +++++++++++++++++++++++++++
  1005.  
  1006. >From mxmora@unix.sri.com (Matt Mora)
  1007. Date: 8 Sep 1994 09:09:29 -0700
  1008. Organization: SRI International, Menlo Park, CA
  1009.  
  1010. In article <523026979413@jonathan.srcc.msu.su> kluev@jonathan.srcc.msu.su (Kluev) writes:
  1011.  
  1012. >compatible solution is the one suggested by someone else: keep your
  1013. >own list of windows in addition to standard one
  1014. >(FrontWindow()-> nextWindow-> nextWindow-> ...).
  1015.  
  1016.  
  1017. I have missed most of the thread but if its about seeing if the window
  1018. is yours or not I usally add a field called magicSig and stuff that with
  1019. The app signature or something. So you can tell a window is yours by
  1020. doing the windowPeek->magicSig == mySig trick. 
  1021.  
  1022. Xavier
  1023.  
  1024.  
  1025. -- 
  1026. ___________________________________________________________
  1027. Matthew Xavier Mora                       Matt_Mora@sri.com
  1028. SRI International                       mxmora@unix.sri.com
  1029. 333 Ravenswood Ave                    Menlo Park, CA. 94025
  1030.  
  1031. +++++++++++++++++++++++++++
  1032.  
  1033. >From gbolsinga@aol.com (GBolsinga)
  1034. Date: 8 Sep 1994 16:29:04 -0400
  1035. Organization: America Online, Inc. (1-800-827-6364)
  1036.  
  1037. I haven't been able to follow the whole thread, but when can your app get
  1038. windows that don't belong to it? I certain that I read in NIM: Mac Toolbox
  1039. Essentials that your app can't get windows from other apps.  I can't 
  1040. remember if it was in the Event Mgr or Window Mgr Chapter.  I know that
  1041. there are some errors in NIM.  Could someone please let me know how a
  1042. window from another app could be seen by my app?
  1043.  
  1044. You see, I am trying to decide how I will keep my extra data with the 
  1045. window, since I'm starting on a new project, and I wasn't too happy with
  1046. the way I have been doing it.
  1047.  
  1048. Thanks.
  1049.  
  1050. Greg Bolsinga
  1051. MPI Multimedia
  1052. /* these are my opinions */
  1053.  
  1054.  
  1055. +++++++++++++++++++++++++++
  1056.  
  1057. >From h+@nada.kth.se (Jon W{tte)
  1058. Date: Fri, 09 Sep 1994 10:07:15 +0200
  1059. Organization: Royal Institute of Something or other
  1060.  
  1061. In article <0019C298.fc@bmug.org>,
  1062. Ron_Hunsinger@bmug.org (Ron Hunsinger) wrote:
  1063.  
  1064. >>Incidentally, you probably only want to use Ivan's handle check in
  1065. >>debugging code, not in shipping code: HandleZone() doesn't come for
  1066. >>free.
  1067.  
  1068. >And if you were a ship-builder, I suppose your ships would only be 
  1069. >equipped with life boats while you tested them in the harbor, but you 
  1070. >would remove all that extra baggage before sending them out to sea?  
  1071.  
  1072. This is interesting!
  1073.  
  1074. If you were a ship builder, would you equip the release version 
  1075. of your ship with helocopters, VTOL jets, lifeboats AND an 
  1076. inflatable cruiser, each capable of holding twice the capacity 
  1077. of the original ship?
  1078.  
  1079. Debugging code is there to help you catch bugs automatically. 
  1080. By the time you ship, you're supposed to have removed all the 
  1081. bugs (right :-) so users might be somewhat unenthusiastic about 
  1082. waiting two minutes for an "Open File" dialog box to show up.
  1083.  
  1084. That aside, I usually ship with the debug version of the oops 
  1085. libraries, meaning method calls for unknown methods or illegal 
  1086. objects are usually flagged as command failures (using the old 
  1087. TCL)
  1088.  
  1089. HandleZone, however, or RecoverHandle, are so expensive that 
  1090. you shouldn't use them in production code unless totally 
  1091. necessary.
  1092.  
  1093. Cheers,
  1094.  
  1095.                 / h+
  1096.  
  1097.  
  1098. --
  1099.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  1100.    This is the kind of totally-gross-out-sick stuff you can do with C++ that
  1101.    makes the language kind of neat.
  1102.                                             -- Keith Rollin
  1103.  
  1104.  
  1105. +++++++++++++++++++++++++++
  1106.  
  1107. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  1108. Date: Sat, 10 Sep 1994 00:02:57 GMT
  1109. Organization: Apple Computer
  1110.  
  1111. Kluev, kluev@jonathan.srcc.msu.su writes:
  1112. > The problem doesn't go away: how to distinguish system dialog and
  1113. > my dialog? (windowKind = dialogKind = 2 in this case). The only
  1114. > compatible solution is the one suggested by someone else: keep your
  1115. > own list of windows in addition to standard one
  1116. > (FrontWindow()-> nextWindow-> nextWindow-> ...).
  1117.  
  1118. Or just don't use dialogs at all. I've found that the effort needed to
  1119. replace the dialog manager isn't much more than the effort needed to write a
  1120. bunch of good dialog utilities to make the dialog manager easily useable...
  1121.  
  1122. --Jens Alfke                           jens_alfke@powertalk.apple.com
  1123.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  1124.  
  1125. +++++++++++++++++++++++++++
  1126.  
  1127. >From peter.lewis@info.curtin.edu.au (Peter N Lewis)
  1128. Date: Sun, 11 Sep 1994 16:30:33 +0800
  1129. Organization: NCRPDA, Curtin University
  1130.  
  1131. >Or just don't use dialogs at all. I've found that the effort needed to
  1132. >replace the dialog manager isn't much more than the effort needed to write a
  1133. >bunch of good dialog utilities to make the dialog manager easily useable...
  1134.  
  1135. Yep, very true.  I've gone the other way (using only DLOGs), and if I had
  1136. it to do over again, I'd swap.
  1137.    Peter.
  1138. -- 
  1139. Peter N Lewis <peter.lewis@info.curtin.edu.au> - Macintosh TCP fingerpainter
  1140. FTP my programs from redback.cs.uwa.edu.au:Others/PeterLewis/ or
  1141. amug.org:pub/peterlewis/ or nic.switch.ch:software/mac/peterlewis/
  1142.  
  1143. +++++++++++++++++++++++++++
  1144.  
  1145. >From kluev@jonathan.srcc.msu.su (Kluev)
  1146. Date: Sun, 11 Sep 94 20:36:53 +0400
  1147. Organization: (none)
  1148.  
  1149. In article <34ncvp$4ji@unix.sri.com>
  1150. mxmora@unix.sri.com (Matt Mora) wrote:
  1151.  
  1152. > In article <523026979413@jonathan.srcc.msu.su>
  1153. > kluev@jonathan.srcc.msu.su > (Kluev) writes:
  1154. > >compatible solution is the one suggested by someone else: keep your
  1155. > >own list of windows in addition to standard one
  1156. > >(FrontWindow()-> nextWindow-> nextWindow-> ...).
  1157. > I have missed most of the thread but if its about seeing if the
  1158. window
  1159. > is yours or not I usally add a field called magicSig and stuff that
  1160. with
  1161. > The app signature or something. So you can tell a window is yours by
  1162. > doing the windowPeek->magicSig == mySig trick. 
  1163.  
  1164. This works of course under current Mac ToolBox/OS. This will work in
  1165. near future also. But this couldn't be treated as a good long-term
  1166. solution:
  1167.  
  1168. 1. Nobody guarantees that system windows will not have magicSig after
  1169.    their DialogRecord/WindowRecord.
  1170. 2. Future OS may have intelligent memory protection, so you will not
  1171.    be able to write or read from locations beyond memory blocks.
  1172. 3. Future Toolbox may switch from WindowRecords to WindowRefcons, so
  1173.    you wonït be able to concatenate there your data. (You may emulate
  1174.    this future feature right now: pass NIL as a first parameter to
  1175.    NewDialog/NewWindow.)
  1176.  
  1177. Again, all this (except 1) is about mystical "future OS".
  1178.  
  1179. Michael Kluev.
  1180.  
  1181.  
  1182. +++++++++++++++++++++++++++
  1183.  
  1184. >From ivan_cavero_belaunde@avid.com (Ivan Cavero Belaunde)
  1185. Date: 12 Sep 1994 11:28:41 GMT
  1186. Organization: Avid Technology, Inc.
  1187.  
  1188. In article <9668AA95E453.201F4@klkmac004.nada.kth.se>, h+@nada.kth.se (Jon
  1189. W{tte) wrote:
  1190. > In article <0019C298.fc@bmug.org>,
  1191. > Ron_Hunsinger@bmug.org (Ron Hunsinger) wrote:
  1192. > >>Incidentally, you probably only want to use Ivan's handle check in
  1193. > >>debugging code, not in shipping code: HandleZone() doesn't come for
  1194. > >>free.
  1195. > >And if you were a ship-builder, I suppose your ships would only be 
  1196. > >equipped with life boats while you tested them in the harbor, but you 
  1197. > >would remove all that extra baggage before sending them out to sea?  
  1198.  
  1199. That's a bit harsh; Rich's remark is on target - I believe HandleZone
  1200. involves walking through a zone's master pointer list. It's pretty costly.
  1201.  
  1202. > If you were a ship builder, would you equip the release version 
  1203. > of your ship with helocopters, VTOL jets, lifeboats AND an 
  1204. > inflatable cruiser, each capable of holding twice the capacity 
  1205. > of the original ship?
  1206. > ...
  1207. > HandleZone, however, or RecoverHandle, are so expensive that 
  1208. > you shouldn't use them in production code unless totally 
  1209. > necessary.
  1210.  
  1211. Actually, I avoid hard and fast rules with the ValidHandle routine.
  1212. Depending on how the likelihood (which is related to how you got the
  1213. "handle") that you got a fake handle, the necessity of it being a handle
  1214. (are you going to pass it to the toolbox as one?), how often the code
  1215. would be called (if it's called once in a blue moon ValidHandle ain't that
  1216. expensive) and the time-consumingness (ack, bad word) of the rest of the
  1217. operation. In other words, it's a judgment call. That being said, Rich and
  1218. Jon are dead on, Valid Handle is way expensive. I keep a ValidHandle and a
  1219. ValidHandleSafe that I choose among - ValidHandle has the HandleZone
  1220. routine #ifdef DEBUG'd out.
  1221.  
  1222. -Ivan
  1223. - --
  1224. Ivan Cavero Belaunde (ivan_cavero_belaunde@avid.com)
  1225. Avid VideoShop Lead
  1226. Avid Technology, Inc.
  1227. Disclaimer:  All views expressed are entirely my own and do not
  1228. reflect  the opinions of Avid Technology, Inc.
  1229.  
  1230. +++++++++++++++++++++++++++
  1231.  
  1232. >From besbris@jeeves.ucsd.edu (David Besbris)
  1233. Date: 15 Sep 1994 17:40:51 GMT
  1234. Organization: University of California at San Diego
  1235.  
  1236. I usually do append stuff to the windowptr, but if you want to be REALLY
  1237. anal...
  1238.     You can keep your own linked list of your window like:
  1239.  
  1240.           Type
  1241.               NodePtr = ^ NodeRec;
  1242.                      NodeRec =
  1243.             record of
  1244.                 AWindow : WindowPtr;
  1245.                 MyData    : Handle;
  1246.                 Link    : NodePtr;
  1247.             end;
  1248.             
  1249. And then when you want to know if a window is yours just search the list
  1250. to get your data. The overhead of this is really quite small, and it can
  1251. insulate you from all of the worries of using the refcons or appending
  1252. data directly to a structure that you pass to the system.
  1253.  
  1254.  
  1255. My 2 cents,
  1256.  
  1257. Dave
  1258.  
  1259. besbris@jeeves.ucsd.edu
  1260.  
  1261.  
  1262. ---------------------------
  1263.  
  1264. >From westwig@msc.cornell.edu (Erik Anton Westwig)
  1265. Subject: Dialogs and (de)activate events
  1266. Date: Wed, 14 Sep 1994 11:54:07 -0500
  1267. Organization: Cornell University
  1268.  
  1269. Here's a HIG type question for 'ya
  1270.  
  1271. The frontmost window has some active text in it.
  1272. The user then does something to bring up a dialog.
  1273.  
  1274. When should I deactivate the text? 
  1275.  
  1276. I looked at ThinkC 5 and it wasn't even consistent with itself:
  1277. 1. if you bring up the About ThinkC box with text selected in the editor,
  1278. it
  1279.    WILL NOT deselect the text.
  1280. 2. But if you choose New in the File Menu, it WILL deselect it.
  1281.  
  1282. I then looked at TeachText which I figured would follow whatever Apple
  1283. wanted
  1284. programmers to do, and it didn't deselect the text when a dialog was
  1285. brought
  1286. up.
  1287.  
  1288. This seems backwards to me, since in other parts of IM vol I, it tells you
  1289. explicitly to deselect text when a window is not in the front.  So which is
  1290. it (and why)?
  1291.  
  1292. Also since you aren't going to receive a deactivate event in your app when
  1293. you 
  1294. use a Modal dialog, you will need to call the whatever deactivation routin
  1295. within your dialog routine (right?).  Is this different for a modless box?
  1296.  
  1297. Thanks for the advice,
  1298. ERIK
  1299. -- 
  1300. "IT's over to you..."
  1301.  
  1302. +++++++++++++++++++++++++++
  1303.  
  1304. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  1305. Date: Wed, 14 Sep 1994 21:29:25 GMT
  1306. Organization: Apple Computer
  1307.  
  1308. Erik Anton Westwig, westwig@msc.cornell.edu writes:
  1309. > The frontmost window has some active text in it.
  1310. > The user then does something to bring up a dialog.
  1311. > When should I deactivate the text? 
  1312.  
  1313. Always. You should disable the active window when a dialog appears and
  1314. re-enable it when it goes away. It takes a little bit of extra effort to do
  1315. this, and apps are pretty inconsistent about doing it.
  1316.  
  1317. Note that if the dialog applies to the current selection, you may want to
  1318. display a "dimmed" selection when the window is inactive, so the user can
  1319. still tell what area is selected.
  1320.  
  1321. > Also since you aren't going to receive a deactivate event in your app when
  1322. > you 
  1323. > use a Modal dialog, you will need to call the whatever deactivation routin
  1324. > within your dialog routine (right?).  Is this different for a modless box?
  1325.  
  1326. You do actually get a deactivate event, but the modal dialog ignores it by
  1327. default because it doesn't know diddly about your document windows. To get
  1328. the event yourself, use a modal dialog filter and watch for activate events.
  1329. When you get one for a document window, do the right thing. This also applies
  1330. to update events; that way your document windows will still update while
  1331. there is a dialog up (let's say a screen saver kicked in...)
  1332.  
  1333. --Jens Alfke                           jens_alfke@powertalk.apple.com
  1334.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  1335.  
  1336. +++++++++++++++++++++++++++
  1337.  
  1338. >From bb@lightside.com (Bob Bradley)
  1339. Date: Tue, 13 Sep 1994 05:23:23 -0800
  1340. Organization: SS Software Inc.
  1341.  
  1342. In article <westwig-140994115407@cu-dialup-0039.cit.cornell.edu>,
  1343. westwig@msc.cornell.edu (Erik Anton Westwig) wrote:
  1344.  
  1345. > Here's a HIG type question for 'ya
  1346. > The frontmost window has some active text in it.
  1347. > The user then does something to bring up a dialog.
  1348. > When should I deactivate the text? 
  1349.  
  1350. I always thought it was stupid that calling StandardGetFile wouldn't
  1351. generate an activate event for the window it's coming in front of and even
  1352. worse, it's inconsistant, since the window itself (the part the window
  1353. manager handles for you) is deactivated (ie. the drag region is changed to
  1354. inactivate state) but, a deactivate event isn't generated.
  1355.  
  1356. What I do is isolate all my activate/deactivate code into a single
  1357. HandleActivate routine that will normally be called when I receive an
  1358. activate event. Then if I'm going to put up a dialog (like StandardFile)
  1359. that doesn't generate an activate event, I'll manually call HandleActivate
  1360. for that frontmost window (since it's the only one that would be active).
  1361.  
  1362. For your own dialogs, calling ShowWindow before calling ModalDialog should
  1363. generate the deactivate event for the previous frontmost window.
  1364.  
  1365. ---------------------------
  1366.  
  1367. >From mmah@alias.com (Ming Mah)
  1368. Subject: Lets talk OpenDoc
  1369. Date: Thu, 18 Aug 1994 14:28:06 GMT
  1370. Organization: Alias Research Inc., Toronto ON Canada
  1371.  
  1372. Hi gang,
  1373.  
  1374. I have not seen a discussion thread about OpenDoc, and I wanted to
  1375. start one up with some initial impressions that I had.
  1376.  
  1377. I saw the discussion about OLE being bundled in the August issue
  1378. of MacTech, and I went to pick it up.  I also read about being able
  1379. to get a copy of the OpenDoc alpha CD by sending some mail to
  1380. OPENDOC@applelink.apple.com, and so I did that as well (and I have
  1381. to say I am really impressed with Apple in that regards.  I sent
  1382. out my request on Friday, and by Tuesday I had received the OpenDoc
  1383. CD ... with all the discussion about getting the CD (I know, it
  1384. branched off into a general tirade about Apple's SDK policies) I
  1385. have to say this was VERY impressive).
  1386.  
  1387. Any ways, on to what I wanted to say.  I first installed the OLE
  1388. stuff, and tried to play around with the sample applications that
  1389. were included, and I have to admit that I was really confused about
  1390. just what Microsoft was trying to show, and how to go about doing
  1391. anything useful at all.  After exploring the CD a bit, I came across
  1392. an 'OLE vs. OpenDoc' discussion, and things were pretty much downhill
  1393. from there.  The document has tons of (I think) uncalled for jabs at
  1394. OpenDoc, and a lot of defensiveness about design differences between
  1395. the two technologies.
  1396.  
  1397. The impression I had with OLE is that it is an enabling technology
  1398. to allow for document centric inter-application communications.
  1399. I could not get a very nice feel for "in-place" editting as the few
  1400. things I tried (an Excel spreadsheet, and embedding a QuickTime movie)
  1401. both ended up launching seperate applications (Excel and a QuickTime
  1402. movie player).  In order to even play the movie, I had to switch over
  1403. to another application to get it started, although once started it
  1404. did play within my document.
  1405.  
  1406. OpenDoc though seems to be a tremendous leap forward with the Macintosh
  1407. "user experience" (I have come to REALLY like that phrase).  OpenDoc
  1408. is layered on top of Drag-and-drop and shared libraries (although
  1409. apparently the shared library stuff will go away).  The OpenDoc
  1410. application itself is only 20K !!
  1411.  
  1412. Viewing and editing "parts" is very intuitive (well almost, I did
  1413. have to dig a little bit to find out about pressing command to
  1414. move a part around, as opposed to activating it).  And the interaction
  1415. with the Finder was really nice.
  1416.  
  1417. All part editing happened within the document, and it was kind of neat
  1418. to see the menus switching as I went from part to part.  A QuickTime
  1419. movie is embedded by opening a QuickTime part editor (which does not
  1420. seem "right" to me), but the movie itself was embedded directly in
  1421. my document, and playing the movie is done by activating the badge.
  1422.  
  1423. Back to the 'OLE vs. OpenDoc' discussion on the OLE CD.  OLE seems to
  1424. me to be just a protocol for inter-application communications (I know
  1425. "just" is a rather harsh and over-simple word), whereas OpenDoc
  1426. encompasses a lot more than that.  OpenDoc is tightly integrated within
  1427. the Macintosh experience (again, it was just "right" to drag a piece
  1428. of text to the trash, and have it removed from my document), and is
  1429. a well thought out extension to it.
  1430.  
  1431. OpenDoc also includes some really neat file support tools, especially
  1432. the draft version-ability.  I thought that it again just shows a lot
  1433. of thought and attention to what users want to do with a document.
  1434.  
  1435. Well, these were just my first impressions, and if you have not already,
  1436. I would urge you to take a look at both technologies (especially since
  1437. they can be gotten for almost free (OpenDoc IS free)).  I am starting
  1438. to feel realy warm and fuzzy with OpenDoc, and I would be interested
  1439. in continued discussions about OpenDoc part development.
  1440.  
  1441. Have fun.
  1442. Ming
  1443.  
  1444. +++++++++++++++++++++++++++
  1445.  
  1446. >From hanrek@cts.com (Mark Hanrek)
  1447. Date: 18 Aug 1994 22:15:21 GMT
  1448. Organization: The Information Workshop
  1449.  
  1450.  
  1451. Ming,
  1452.  
  1453. I had the exact same identical experience, and assessment, as you did.
  1454.  
  1455. Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1456. could not make heads or tails of where to start to dive in.  There was no
  1457. read-me that was the big arrow pointing to "Start Here".   A fatal
  1458. mistake.
  1459.  
  1460. Also, the "OpenDoc vs. OLE: Information for Customers" thing was filled
  1461. with unprofessional "jabs" as you rightly called them, and this makes it
  1462. obvious that a certain entity feels a little insecure, and will resort to
  1463. mud-slinging, since there must be little to point to which can stand on
  1464. its own.
  1465.  
  1466. Hmmmmm.
  1467.  
  1468. Mark Hanrek
  1469. The Information Workshop
  1470.  
  1471. +++++++++++++++++++++++++++
  1472.  
  1473. >From rob@eats.com (Rob Newberry)
  1474. Date: Thu, 18 Aug 1994 18:34:34 UNDEFINED
  1475. Organization: Education and Technology Solutions
  1476.  
  1477. >Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1478. >could not make heads or tails of where to start to dive in.  There was no
  1479. >read-me that was the big arrow pointing to "Start Here".   A fatal
  1480. >mistake.
  1481.  
  1482. My goodness.  You get a free bunch of code, and you want someone to step you 
  1483. through the whole thing too?  Come on!
  1484.  
  1485. If you want to learn about the OLE stuff on the CD, take a look at the 
  1486. Microsoft Press book, "Inside OLE 2".  It is primarily Windows-oriented, but 
  1487. the OLE code is (FTMP) well explained and portable.
  1488.  
  1489. >Also, the "OpenDoc vs. OLE: Information for Customers" thing was filled
  1490. >with unprofessional "jabs" as you rightly called them, and this makes it
  1491. >obvious that a certain entity feels a little insecure, and will resort to
  1492. >mud-slinging, since there must be little to point to which can stand on
  1493. >its own.
  1494.  
  1495. Didn't read it.  I'm not surprised, though...
  1496.  
  1497. Rob
  1498.  
  1499.  
  1500.  
  1501. +++++++++++++++++++++++++++
  1502.  
  1503. >From nick+@pitt.edu ( nick.c )
  1504. Date: Thu, 18 Aug 94 23:19:42 GMT
  1505. Organization: The Pitt, Chemistry
  1506.  
  1507. In Article <hanrek-1808941517260001@auke.cts.com>, hanrek@cts.com (Mark
  1508. Hanrek) wrote:
  1509.  
  1510. >Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1511. >could not make heads or tails of where to start to dive in.  There was no
  1512.  
  1513.  
  1514.     For what it's worth, Apple will put OpenDoc in your hands now
  1515.       and free too.  After the initial flurry regarding the MacTech
  1516.       distribution of OLE, I responded to Tre's suggestion that anyone
  1517.       who was interested could get the equivalent OpenDoc SDK.  
  1518.       Just got the package today, and it's in Alpha release -
  1519.       and I sure haven't figured out enough to comment on the
  1520.       superiority of one or the other.  But the take home lesson
  1521.       is the resources exist to start working on either standard
  1522.       today, and at no cost.  Figure I'll be doing a little reading
  1523.       tonight :-).
  1524.  
  1525.                                             -- nick
  1526.  
  1527.   Disclaimer: Just my opinion.
  1528.                                     _/   _/  _/  _/_/_/   _/   _/  
  1529.      Interet: nick@pitt.edu        _/_/ _/  _/  _/   _/  _/_/_/    
  1530.       eWorld: nick                _/ _/_/  _/  _/       _/ _/      
  1531.          CIS: 71232,766          _/   _/  _/   _/_/_/  _/   _/     
  1532.     
  1533.            "Science is nothing but perception" - Plato
  1534.  
  1535. +++++++++++++++++++++++++++
  1536.  
  1537. >From 103t_english@west.cscwc.pima.edu
  1538. Date: 18 Aug 94 23:22:13 MST
  1539. Organization: (none)
  1540.  
  1541. In article <hanrek-1808941517260001@auke.cts.com>, hanrek@cts.com (Mark Hanrek) writes:
  1542. > Ming,
  1543. > I had the exact same identical experience, and assessment, as you did.
  1544. > Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1545. > could not make heads or tails of where to start to dive in.  There was no
  1546. > read-me that was the big arrow pointing to "Start Here".   A fatal
  1547. > mistake.
  1548. > Also, the "OpenDoc vs. OLE: Information for Customers" thing was filled
  1549. > with unprofessional "jabs" as you rightly called them, and this makes it
  1550. > obvious that a certain entity feels a little insecure, and will resort to
  1551. > mud-slinging, since there must be little to point to which can stand on
  1552. > its own.
  1553. > Hmmmmm.
  1554.  
  1555. What I found fasckinatin was the review/comparison given in MacTech Journal.
  1556.  
  1557. I noted a certain assumption that everyone must use C++ and that all vendors
  1558. must use the same object format and that the overall feel of OLE vs OpenDOc was
  1559. a tie as far as H-I concerns were concerned, etc.
  1560.  
  1561. Even though I'm not competent to refute any of his observations,  I felt that
  1562. the tone of the article was "Microsoft paid me to write this and so I'm putting
  1563. it in the best possible light."
  1564.  
  1565.  
  1566. Anyone else get this feeling?
  1567.  
  1568.  
  1569. Lawson
  1570.  
  1571. +++++++++++++++++++++++++++
  1572.  
  1573. >From Ken Prehoda <kenp@nmrfam.wisc.edu>
  1574. Date: 19 Aug 1994 16:57:26 GMT
  1575. Organization: Univ of Wisc-Madison
  1576.  
  1577. In article <1994Aug18.232213@west.cscwc.pima.edu> ,
  1578. 103t_english@west.cscwc.pima.edu writes:
  1579. >Even though I'm not competent to refute any of his observations,  I felt
  1580. that
  1581. >the tone of the article was "Microsoft paid me to write this and so I'm
  1582. putting
  1583. >it in the best possible light."
  1584. >
  1585. >
  1586. >Anyone else get this feeling?
  1587.  
  1588. I got the same feeling.  I was definitely surprised at the authors
  1589. SOM-bashing.  I am not that familiar with SOM but have heard good things.
  1590. The author of the MacTech article made it sound as if SOM was completely
  1591. unacceptable.
  1592.  
  1593. Are there any unbiased opinions on SOM vs. COM?
  1594.  
  1595. -Ken Prehoda
  1596. kenp@nmrfam.wisc.edu
  1597.  
  1598. +++++++++++++++++++++++++++
  1599.  
  1600. >From h+@nada.kth.se (Jon W{tte)
  1601. Date: Fri, 19 Aug 1994 22:27:21 +0200
  1602. Organization: Royal Institute of Something or other
  1603.  
  1604. In article <1994Aug18.232213@west.cscwc.pima.edu>,
  1605. 103t_english@west.cscwc.pima.edu wrote:
  1606.  
  1607. >I noted a certain assumption that everyone must use C++ and that all vendors
  1608. >must use the same object format
  1609.  
  1610. Uh, not under OpenDoc you don't have to. OpenDoc will layer on 
  1611. top of SOM, which is language neutral and even provides network 
  1612. transparency in DSOM.
  1613.  
  1614. However, the current _ALPHA_ release uses the ASLM which 
  1615. demands either MPW C++ _or_ SC++ for MPW for the entire build.
  1616.  
  1617. >and that the overall feel of OLE vs OpenDOc was
  1618. >a tie as far as H-I concerns were concerned, etc.
  1619.  
  1620. Simply not true, as anyone who has tried to create and edit a 
  1621. composite document in OLE 2 versus OpenDoc will tell you.
  1622.  
  1623. Cheers,
  1624.  
  1625.  
  1626.                 / h+
  1627.  
  1628.  
  1629. --
  1630.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  1631.  
  1632. "TextEdit does everything right."
  1633.     ã Jon W{tte
  1634.  
  1635.  
  1636. +++++++++++++++++++++++++++
  1637.  
  1638. >From h+@nada.kth.se (Jon W{tte)
  1639. Date: Fri, 19 Aug 1994 22:27:23 +0200
  1640. Organization: Royal Institute of Something or other
  1641.  
  1642. In article <rob.308.005C70F3@eats.com>,
  1643. rob@eats.com (Rob Newberry) wrote:
  1644.  
  1645. >My goodness.  You get a free bunch of code, and you want someone to step you 
  1646. >through the whole thing too?  Come on!
  1647.  
  1648. You DO get that on the OpenDoc CD. It has lots of useful 
  1649. recepies for various things, and also comes with PartMaker, 
  1650. which generates a part shell for you which you can extend.
  1651.  
  1652. Cheers,
  1653.  
  1654.                 / h+
  1655.  
  1656.  
  1657. --
  1658.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  1659.  
  1660. "TextEdit does everything right."
  1661.     ã Jon W{tte
  1662.  
  1663.  
  1664. +++++++++++++++++++++++++++
  1665.  
  1666. >From mmah@alias.com (Ming Mah)
  1667. Date: Fri, 19 Aug 1994 21:08:23 GMT
  1668. Organization: Alias Research, Inc., Toronto ON Canada
  1669.  
  1670. In <1994Aug18.232213@west.cscwc.pima.edu> 103t_english@west.cscwc.pima.edu writes:
  1671.  
  1672. >What I found fasckinatin was the review/comparison given in MacTech Journal.
  1673.  
  1674. >I noted a certain assumption that everyone must use C++ and that all vendors
  1675. >must use the same object format and that the overall feel of OLE vs OpenDOc was
  1676. >a tie as far as H-I concerns were concerned, etc.
  1677.  
  1678. >Even though I'm not competent to refute any of his observations,  I felt that
  1679. >the tone of the article was "Microsoft paid me to write this and so I'm putting
  1680. >it in the best possible light."
  1681.  
  1682.  
  1683. >Anyone else get this feeling?
  1684.  
  1685.  
  1686. >Lawson
  1687.  
  1688.  
  1689. Hi Lawson,
  1690.  
  1691. Yes, that was the same feeling I had.  In terms of H-I, OpenDoc is
  1692. really easy to use, and feels very natural (although A LOT of this
  1693. has to do with drag-and-drop).  Editing in place feels really nice
  1694. with OpenDoc, and although it may have been just that OLE was not
  1695. set up with workable demos, launching Excel to edit a spreadsheet
  1696. somehow just does not feel the same.
  1697.  
  1698. A major "argument" that I saw in the MacTech review was the
  1699. underlying support architecture, and the way OpenDoc's SOM was
  1700. described sounded really intimidating to me.  Now currently
  1701. the OpenDoc Alpha uses Shared Libraries (which I do not know
  1702. how to create either), and PartMaker creates all the necessary
  1703. configuration files (including make files and such) so I would
  1704. suspect that when OpenDoc goes SOM that the same thing would
  1705. happen.  I am sure that if someone HAD to get down and dirty
  1706. that SOM-ness (or whatever) could be scary, but so far (and
  1707. I have a very simple part running after only playing around
  1708. for two days) I have NOT run into any difficulties at all,
  1709. let alone any of the nature that were speculated upon in
  1710. the review article.
  1711.  
  1712. The review does feel really very much as if it was written
  1713. by Microsoft, and not by someone who has used OpenDoc much
  1714. (if at all !!).  I still really feel that the document
  1715. structure file support (for things like drafts and mostly
  1716. transparent access to drag-and-drop and links) is a cool
  1717. feature of OpenDoc way beyond a simple IAC interface.
  1718.  
  1719. Have fun.
  1720. Ming
  1721.  
  1722. +++++++++++++++++++++++++++
  1723.  
  1724. >From nagle@netcom.com (John Nagle)
  1725. Date: Sat, 20 Aug 1994 04:44:10 GMT
  1726. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  1727.  
  1728. 103t_english@west.cscwc.pima.edu writes:
  1729. >What I found fasckinatin was the review/comparison given in MacTech Journal.
  1730. >I noted a certain assumption that everyone must use C++ and that all vendors
  1731. >must use the same object format and that the overall feel of OLE vs OpenDOc was
  1732. >a tie as far as H-I concerns were concerned, etc.
  1733.  
  1734. >Even though I'm not competent to refute any of his observations,  I felt that
  1735. >the tone of the article was "Microsoft paid me to write this and so I'm putting
  1736. >it in the best possible light."
  1737. >Anyone else get this feeling?
  1738.  
  1739.      I didn't get that feeling.  The Microsoft position is much stronger,
  1740. and can be found in "White Papers:Point CounterPoint" on the OLE CD-ROM.
  1741.  
  1742.      OLE is definitely C++ oriented; it knows about C++ vtables.  
  1743. OpenDoc bought into IBM's System Object Model, which is language-neutral,
  1744. sort of.  The languages have to know about SOM, or at least it works 
  1745. better if they do. 
  1746.  
  1747.      A more fundamental problem is that all this machinery exists mostly
  1748. so you can embed different documents in your word processor and still
  1749. edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  1750. The Next Generation".  Yes, you can do other stuff, but the touted
  1751. advantage is mostly for integrated documents.  It's all focused on 
  1752. what documents look like, not what they mean.  Is that really worth all 
  1753. this complexity?  
  1754.  
  1755.                     John Nagle
  1756.  
  1757. +++++++++++++++++++++++++++
  1758.  
  1759. >From 103t_english@west.cscwc.pima.edu
  1760. Date: 20 Aug 94 00:50:01 MST
  1761. Organization: (none)
  1762.  
  1763. In article <nagleCutH5M.1w1@netcom.com>, nagle@netcom.com (John Nagle) writes:
  1764. > 103t_english@west.cscwc.pima.edu writes:
  1765. >>What I found fasckinatin was the review/comparison given in MacTech Journal.
  1766. >>I noted a certain assumption that everyone must use C++ and that all vendors
  1767. >>must use the same object format and that the overall feel of OLE vs OpenDOc was
  1768. >>a tie as far as H-I concerns were concerned, etc.
  1769. >>Even though I'm not competent to refute any of his observations,  I felt that
  1770. >>the tone of the article was "Microsoft paid me to write this and so I'm putting
  1771. >>it in the best possible light."
  1772. >>Anyone else get this feeling?
  1773. >      I didn't get that feeling.  The Microsoft position is much stronger,
  1774. > and can be found in "White Papers:Point CounterPoint" on the OLE CD-ROM.
  1775. >      OLE is definitely C++ oriented; it knows about C++ vtables.  
  1776. > OpenDoc bought into IBM's System Object Model, which is language-neutral,
  1777. > sort of.  The languages have to know about SOM, or at least it works 
  1778. > better if they do. 
  1779. >      A more fundamental problem is that all this machinery exists mostly
  1780. > so you can embed different documents in your word processor and still
  1781. > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  1782. > The Next Generation".  Yes, you can do other stuff, but the touted
  1783. > advantage is mostly for integrated documents.  It's all focused on 
  1784. > what documents look like, not what they mean.  Is that really worth all 
  1785. > this complexity?  
  1786. >                     John Nagle
  1787.  
  1788.  
  1789. So, is the complexity for the programmer or for the user, and just who is more
  1790. important?
  1791.  
  1792.  
  1793. Lawson
  1794.  
  1795. +++++++++++++++++++++++++++
  1796.  
  1797. >From philip@cs.uct.ac.za (Philip Machanick)
  1798. Date: 20 Aug 1994 14:40:56 +0200
  1799. Organization: Computer Science Department, University of Cape Town
  1800.  
  1801. Ming Mah (mmah@alias.com) wrote:
  1802. : I saw the discussion about OLE being bundled in the August issue
  1803. : of MacTech, and I went to pick it up.  I also read about being able
  1804. : to get a copy of the OpenDoc alpha CD by sending some mail to
  1805. : OPENDOC@applelink.apple.com, and so I did that as well (and I have
  1806. : to say I am really impressed with Apple in that regards.  I sent
  1807. : out my request on Friday, and by Tuesday I had received the OpenDoc
  1808.  
  1809. Took a little longer in my case, but I am on a different continent and
  1810. they sent it DHL at their expense. I haven't seen the OLE CD yet - if
  1811. anyone wants to get rid of theirs, let me know (I don't mind if you can't
  1812. afford DHL :). If so please send mail to philipm@is.co.za - my regular
  1813. mail server is broken.
  1814.  
  1815. : CD ... with all the discussion about getting the CD (I know, it
  1816. : branched off into a general tirade about Apple's SDK policies) I
  1817. : have to say this was VERY impressive).
  1818. [...]
  1819. : Back to the 'OLE vs. OpenDoc' discussion on the OLE CD.  OLE seems to
  1820. : me to be just a protocol for inter-application communications (I know
  1821. : "just" is a rather harsh and over-simple word), whereas OpenDoc
  1822. : encompasses a lot more than that.  OpenDoc is tightly integrated within
  1823. : the Macintosh experience (again, it was just "right" to drag a piece
  1824. : of text to the trash, and have it removed from my document), and is
  1825. : a well thought out extension to it.
  1826.  
  1827. I wonder what there is in it for Microsoft to wholeheartedly embrace
  1828. the concept of lots of small plug and play editors. Microsoft relies
  1829. on selling big bloated apps for income.
  1830.  
  1831. Apple has always been a paradigm-shift company - even if they
  1832. sometimes forget this - whereas Microsoft is a kludge-shift
  1833. company. Apple has an inherent need to push new ways of doing things
  1834. as a selling point for a minority platform. Microsoft has to please
  1835. conservative managers by pretending they aren't changing the way
  1836. things are done, just covering corporate asses by filling out the
  1837. feature list as fully as possible. This leads to gigantic monolithic
  1838. apps. It's hard to see how MS Word, Excel etc. fit into a
  1839. document centric world.
  1840.  
  1841. That's partly why I would like to check out the OLE CD. Is it
  1842. really document centric - or is it just a way of embedding
  1843. pieces of other apps' documents in one app's documents?
  1844. --
  1845. Philip Machanick                      philip@cs.wits.ac.za
  1846. Computer Science Department, University of he Witwatesrand
  1847. 2050 Wits, South Africa 27(11)716-3309 fax 339-7965
  1848. (at University of Cape Town until November: 27(21)650-4058)
  1849.  
  1850. +++++++++++++++++++++++++++
  1851.  
  1852. >From sandvik@apple.com (Kent Sandvik)
  1853. Date: Sat, 20 Aug 1994 19:16:32 GMT
  1854. Organization: Dr. Stupid Meets Frankenstein
  1855.  
  1856. In article <334tko$jjq@cs.uct.ac.za>
  1857. philip@cs.uct.ac.za (Philip Machanick) writes:
  1858.  
  1859. > Apple has always been a paradigm-shift company - even if they
  1860. > sometimes forget this - whereas Microsoft is a kludge-shift
  1861. > company. Apple has an inherent need to push new ways of doing things
  1862. > as a selling point for a minority platform. Microsoft has to please
  1863. > conservative managers by pretending they aren't changing the way
  1864. > things are done, just covering corporate asses by filling out the
  1865. > feature list as fully as possible. This leads to gigantic monolithic
  1866. > apps. It's hard to see how MS Word, Excel etc. fit into a
  1867. > document centric world.
  1868. > That's partly why I would like to check out the OLE CD. Is it
  1869. > really document centric - or is it just a way of embedding
  1870. > pieces of other apps' documents in one app's documents?
  1871.  
  1872. You are on the right track, a lot of the OLE versus OpenDoc has to do
  1873. with techno-political, strategic games. Microsoft would not like to
  1874. loose the lucrative market of selling base applications to office
  1875. environments. Imagine a future where anyone could buy cheaper
  1876. components and put together their favourite environment. The content is
  1877. the content, and the tools are the tools.
  1878.  
  1879. There will of course be a nice market for companies that bundle part
  1880. handlers so the end result is indeed a classical application. However
  1881. Microsoft would no longer have full control of their base line
  1882. application offerings, and that's something they don't want to loose.
  1883. Thus their technical drive behind OLE is more to make sure that
  1884. applications offer OLE support, and of course their applications are
  1885. the prime OLE engines. 
  1886.  
  1887. Think about this next time you read technical blurbs from Microsoft
  1888. about OLE. Anyway, private comments. I would rather see a world where
  1889. all kinds of companies are allowed to compete on the application arena,
  1890. instead of having one single big company dictate the rules.
  1891.  
  1892. Cheers, Kent
  1893.  
  1894. Kent Sandvik, Apple Computer Inc. sandvik@apple.com
  1895. --Private activities on the net --
  1896.  
  1897. +++++++++++++++++++++++++++
  1898.  
  1899. >From michael@elwing.otago.ac.nz (Michael(tm) Hamel)
  1900. Date: Sat, 20 Aug 1994 21:06:17 GMT
  1901. Organization: University of Otago
  1902.  
  1903. 103t_english@west.cscwc.pima.edu wrote:
  1904.  
  1905. > I noted a certain assumption that everyone must use C++ and that all vendors
  1906. > must use the same object format and that the overall feel of OLE vs OpenDOc was
  1907. > a tie as far as H-I concerns were concerned, etc.
  1908.  
  1909. What really gets me about OpenDoc is that its another factor thats going to
  1910. push my company off the Macintosh.
  1911.  
  1912. We have a substantial code base written in Object Pascal. Apple are saying to
  1913. us, "Hey, rewrite everything in C++ in this entirely different way and thats
  1914. the future". The trouble is, thats exactly the effort required to put us on
  1915. Windows. Now, I believe, and I'm sure you'll agree, that moving to OpenDoc
  1916. would be a much "nicer" thing to do and would produce a better user experience,
  1917. etc. But it requires us to trust the Apple who brought us MacApp and BedRock
  1918. with an awfully similar-looking exercise. And we just can't afford to do that.
  1919. Maybe in twelve or eighteen months it will be clearer that we can, but we may
  1920. have to commit ourselves before then. To Windows.
  1921.  
  1922. --
  1923. Michael(tm) Hamel                           ADInstruments, Dunedin, New Zealand
  1924. michael@otago.ac.nz
  1925.  
  1926. "The Galaxy's a fun place. You'll need to have this fish in your ear."
  1927.  
  1928. +++++++++++++++++++++++++++
  1929.  
  1930. >From 103t_english@west.cscwc.pima.edu
  1931. Date: 20 Aug 94 16:51:02 MST
  1932. Organization: (none)
  1933.  
  1934. In article <CuuqMI.BMJ@news.otago.ac.nz>, michael@elwing.otago.ac.nz (Michael(tm) Hamel) writes:
  1935. > 103t_english@west.cscwc.pima.edu wrote:
  1936. >> I noted a certain assumption that everyone must use C++ and that all vendors
  1937. >> must use the same object format and that the overall feel of OLE vs OpenDOc was
  1938. >> a tie as far as H-I concerns were concerned, etc.
  1939. > What really gets me about OpenDoc is that its another factor thats going to
  1940. > push my company off the Macintosh.
  1941. > We have a substantial code base written in Object Pascal. Apple are saying to
  1942. > us, "Hey, rewrite everything in C++ in this entirely different way and thats
  1943. > the future". The trouble is, thats exactly the effort required to put us on
  1944. > Windows. Now, I believe, and I'm sure you'll agree, that moving to OpenDoc
  1945. > would be a much "nicer" thing to do and would produce a better user experience,
  1946. > etc. But it requires us to trust the Apple who brought us MacApp and BedRock
  1947. > with an awfully similar-looking exercise. And we just can't afford to do that.
  1948. > Maybe in twelve or eighteen months it will be clearer that we can, but we may
  1949. > have to commit ourselves before then. To Windows.
  1950.  
  1951. WHile I don't know that OpenDoc will work with Object Pascal, the fact that it
  1952. is touted as more language-independent than OLE suggest that it should...
  1953.  
  1954. Any OpenDoc gurus/designers lurking?
  1955.  
  1956.  
  1957. Lawson
  1958.  
  1959. +++++++++++++++++++++++++++
  1960.  
  1961. >From hanrek@cts.com (Mark Hanrek)
  1962. Date: 21 Aug 1994 01:08:05 GMT
  1963. Organization: The Information Workshop
  1964.  
  1965. >>
  1966. >> Mark Hanrek said...
  1967. >>
  1968. >> Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1969. >> could not make heads or tails of where to start to dive in.  There was no
  1970. >> read-me that was the big arrow pointing to "Start Here".   A fatal
  1971. >> mistake.
  1972. In article <rob.308.005C70F3@eats.com>, rob@eats.com (Rob Newberry) wrote:
  1973. >
  1974. > My goodness.  You get a free bunch of code, and you want someone to step you 
  1975. > through the whole thing too?  Come on!
  1976.  
  1977. Rob,
  1978.  
  1979. Boy, you must not work in a business-oriented environment do you? 
  1980.  
  1981. This isn't a "guessing game" we're playing here.  This is business.  Time
  1982. is money.  We take the "path of least resistance" and work on a
  1983. need-to-know basis.  
  1984.  
  1985. And a question business-oriented programmer find themselves asking is...
  1986.  
  1987.    Do you want us to use the technology or not?
  1988.  
  1989.  
  1990. This is why I take advantage of every opportunity to put forth the
  1991. recommendation that Apple, and any other company that wants programmers to
  1992. use their technology and APIs, to take the well-known world of
  1993. "user-interface" and "ease of use" and extend it to programmers, because
  1994. programmers are humans too.
  1995.  
  1996. - ---
  1997.  
  1998. In a separate thread, we noted MacTech's success and praised them, and it
  1999. was mentioned that "if a company cares about the customer, then everything
  2000. else falls into place nicely".
  2001.  
  2002. Likewise, if "programmer-interface" is recognized, and the principles of
  2003. "programmer ease-of-use" are implemented, then everything falls into place
  2004. nicely.  It is a simple way to catch a myriad of things that slow
  2005. programmers down which can easily be eliminated.
  2006.  
  2007. This isn't about making things all nice and pretty and neat for sissy
  2008. programmers.
  2009.  
  2010. It has to do with making it so we can go in, do what we need to do, and
  2011. get the hell out of there because we have to move on to 25 other issues
  2012. and we don't have time to screw around being confused, being predisposed
  2013. to making mistakes that have already been made, encountering bugs that
  2014. have already been found, and asking the same questions over and over and
  2015. over.
  2016.  
  2017. - ---
  2018.  
  2019. If someone at Microsoft had been paying attention to what was going on,
  2020. they wouldn't have forgotten to "guide" the programmer interested in OLE,
  2021. telling them to "start here, play with that, then get into this, then
  2022. graduate to this other thing if you wish, and before you start, here is
  2023. some perspective as to how all these things fit together".
  2024.  
  2025. If someone there truly "cared" about the OLE CD being truly effective,
  2026. they would have discovered this oversight.
  2027.  
  2028. This kind of implies something... that this is what happens when you have
  2029. a bunch of people trained to do only what they are told, and to not ask
  2030. questions, or bother having any "ideas".  :)
  2031.  
  2032. I am glad I am aligned with Macintosh, and OpenDoc.
  2033.  
  2034.  
  2035. Mark Hanrek
  2036. The Information Workshop
  2037.  
  2038. +++++++++++++++++++++++++++
  2039.  
  2040. >From neil_ticktin@xplain.com (Neil Ticktin)
  2041. Date: Sun, 21 Aug 1994 03:42:37 GMT
  2042. Organization: MacTech Magazine/Xplain Corporation
  2043.  
  2044. In article <1994Aug18.232213@west.cscwc.pima.edu>,
  2045. 103t_english@west.cscwc.pima.edu wrote:
  2046.  
  2047. >> Even though I'm not competent to refute any of his observations,  I felt that
  2048. >> the tone of the article was "Microsoft paid me to write this and so I'm
  2049. >> putting it in the best possible light."
  2050. >> 
  2051. >> Anyone else get this feeling?
  2052.  
  2053. Lawson,
  2054.  
  2055. Rest assured that at the time of writing the article, Jeff Alger was
  2056. independent from both Apple and Microsoft.  In fact, we checked with both
  2057. companies to see if Jeff was a "fair" choice before embarking on the
  2058. article.  Both gave their "ok".
  2059.  
  2060. Jeff wrote an article that a lot of people agree with and a lot of people
  2061. disagree with.  The important thing is that Jeff worked with both sets of
  2062. software just as any developer would and then wrote up his opinions. 
  2063. Jeff, as you know, liked OLE better.  Why?  Because he found it easier to
  2064. work with and did not like SOM.
  2065.  
  2066. Realize that Jeff's opinion on SOM is just that, an opinion.  I personally
  2067. don't agree with it from what I've heard, but I feel strongly that people
  2068. are entitled to their opinion.  Jeff's also spent more time working with
  2069. the stuff than a lot of people have.
  2070.  
  2071. Also realize that Jeff was working with whatever was available at the
  2072. time.  Documentation and tools for OpenDoc and OLE have been moving very
  2073. quickly.  The articles were written back in the June timeframe and things
  2074. are much different already.  Jeff based his comments on what he saw at
  2075. that moment in time, not promises for the future.
  2076.  
  2077. One last thing.  Even though Jeff favored OLE, he took a bunch of jabs at
  2078. it.  Microsoft had enough respect for Jeff's comments that they've now
  2079. offered him a job.  They seem to be truly interested in making their
  2080. product better.  This all came to pass AFTER the article was published,
  2081. let alone written.
  2082.  
  2083. In the end, I believe that OpenDoc will win because the technology, I
  2084. think, is cool and is better integrated.  But, Microsoft is putting up one
  2085. hell of a fight in the mean time.
  2086.  
  2087. Our goal at MacTech was to put the technology and concepts in your hands. 
  2088. As a developer, the choice is up to you.  Hope it was of help.
  2089.  
  2090. Thanks,
  2091.  
  2092. Neil Ticktin
  2093. MacTech Magazine
  2094.  
  2095. - ---------------------------------------------------------------------
  2096.            Neil Ticktin, MacTech Magazine (formerly MacTutor)
  2097. PO Box 250055, Los Angeles, CA 90025 * 310-575-4343 * Fax: 310-575-0925
  2098.  For more info, anonymous ftp to ftp.netcom.com and cd to /pub/xplain
  2099.   custservice@xplain.com * editorial@xplain.com * adsales@xplain.com
  2100. marketing@xplain.com * accounting@xplain.com * pressreleases@xplain.com
  2101.    progchallenge@xplain.com * publisher@xplain.com * info@xplain.com
  2102.  
  2103. +++++++++++++++++++++++++++
  2104.  
  2105. >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
  2106. Date: Sun, 21 Aug 1994 15:06:39 +0800
  2107. Organization: Department of Computer Science, The University of Western Australia
  2108.  
  2109. In article <CuuqMI.BMJ@news.otago.ac.nz>, michael@elwing.otago.ac.nz
  2110. (Michael(tm) Hamel) wrote:
  2111.  
  2112. >We have a substantial code base written in Object Pascal. Apple are saying to
  2113. >us, "Hey, rewrite everything in C++ in this entirely different way and thats
  2114. >the future".
  2115.  
  2116. I disagree with this.  SOM puts you in a much better position to support
  2117. Pascal than any of the other technologies Apple is using (specifically
  2118. ASLM).  At least with SOM there's a hope of you being able to compile the
  2119. IDL into Pascal.  Everywhere else on the Mac the interfaces are written in
  2120. C and then given to someone who doesn't know Pascal (and doesn't care
  2121. IMHO) to port.  With SOM you should be able to do the job yourself (and
  2122. hence get it done well).
  2123.  
  2124. btw This is all speculation from what I've read in OS/2 Developer
  2125. magazine.  I haven't actually got the OpenDoc CD.
  2126. -- 
  2127. Quinn "The Eskimo!"      <quinn@cs.uwa.edu.au>     "Support HAVOC!"
  2128. Department of Computer Science, The University of Western Australia
  2129.   Who's sick and tired of Apple Pascal interfaces that won't even
  2130.   run through the bloody compiler!  Negligence IMHO.
  2131.  
  2132. +++++++++++++++++++++++++++
  2133.  
  2134. >From philip@cs.uct.ac.za (Philip Machanick)
  2135. Date: 21 Aug 1994 11:07:22 +0200
  2136. Organization: Computer Science Department, University of Cape Town
  2137.  
  2138. John Nagle (nagle@netcom.com) wrote:
  2139.  
  2140. :      A more fundamental problem is that all this machinery exists mostly
  2141. : so you can embed different documents in your word processor and still
  2142. : edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  2143. : The Next Generation".  Yes, you can do other stuff, but the touted
  2144. : advantage is mostly for integrated documents.  It's all focused on 
  2145. : what documents look like, not what they mean.  Is that really worth all 
  2146. : this complexity?  
  2147.  
  2148. I think you miss the point. You can move away from a world of monolithic
  2149. apps like word processors to generic apps in which you use your
  2150. favourite editors. This is paradigm shift, not change of detail.
  2151.  
  2152. Whether it will work or not is hard to say at this stage because of
  2153. the potential for problems with managing a highly customizable world.
  2154.  
  2155. Consider an example that is not word processing, like software development.
  2156.  
  2157. Your major outer level document looks like a Think/CW project. It
  2158. contains embedded documents that are source code, object code,
  2159. resources etc. Each of these embedded objects has editors - which
  2160. you can replace by other editors that have the right semantics,
  2161. but maybe a different look and feel. Object code's editor would
  2162. be a compiler with behaviours like bring up to date. The overall
  2163. project document would also have an editor that would bring the
  2164. whole project up to date.
  2165.  
  2166. Take this a step further and embed this in a version control
  2167. system - one more layer of document.
  2168.  
  2169. Embed this in a documentation system and you've reinvented
  2170. Knuth's Web.
  2171.  
  2172. If this is done right, vast potential is opened up for
  2173. restructuring the way you work around a document-centric
  2174. view of the world.
  2175.  
  2176. The biggest problem is that everyone is going to want to
  2177. do it - and not everyone will have the necessary design
  2178. skills.
  2179.  
  2180. This is a brave new world that Apple is creating for us and 
  2181. it will revolutionise the way we work as much as the original
  2182. Mac did.
  2183. --
  2184. Philip Machanick                      philip@cs.wits.ac.za
  2185. Computer Science Department, University of he Witwatesrand
  2186. 2050 Wits, South Africa 27(11)716-3309 fax 339-7965
  2187. (at University of Cape Town until November: 27(21)650-4058)
  2188.  
  2189. +++++++++++++++++++++++++++
  2190.  
  2191. >From h+@nada.kth.se (Jon W{tte)
  2192. Date: Sun, 21 Aug 1994 13:28:08 +0200
  2193. Organization: Royal Institute of Something or other
  2194.  
  2195. In article <CuuqMI.BMJ@news.otago.ac.nz>,
  2196. michael@elwing.otago.ac.nz (Michael(tm) Hamel) wrote:
  2197.  
  2198. >What really gets me about OpenDoc is that its another factor thats going to
  2199. >push my company off the Macintosh.
  2200.  
  2201. Huh? No-one's forcing you to write for OpenDoc. The monolthic 
  2202. app approach will not die for several years yet.
  2203.  
  2204. >We have a substantial code base written in Object Pascal. Apple are saying to
  2205. >us, "Hey, rewrite everything in C++ in this entirely different way and thats
  2206. >the future". The trouble is, thats exactly the effort required to put us on
  2207.  
  2208. No, that's not what they're saying. You will have to 
  2209. re-structure your UI around the way OpenDoc delivers user 
  2210. interaction; true; and you will also have to re-write your 
  2211. saving code a bit, but OpenDoc is LANGUAGE NEUTRAL since it 
  2212. uses SOM. OLE, on the other hand, parses vtables, so it HAS to 
  2213. be written in C++.
  2214.  
  2215. Maybe you're confusing the design of OpenDoc with the current 
  2216. alpha implementation, which does indeed temporarily require C++.
  2217.  
  2218. >etc. But it requires us to trust the Apple who brought us MacApp and BedRock
  2219. >with an awfully similar-looking exercise. And we just can't afford to do that.
  2220.  
  2221. No. You have to trust CILabs. CILabs is sponsored by Apple, 
  2222. IBM, Novell, Word Perfect and lots of other people. Word 
  2223. Perfect is doing the Windows version of OpenDoc, and I hear the 
  2224. alpha is already out. Writing for OpenDoc really means writing 
  2225. for OpenDoc, not for a particular platform. There are of course 
  2226. platform-specific areas that need to be covered, but you can 
  2227. take your own cross-platform approach, or you can use an 
  2228. existing library (like the Open Parts Framework)
  2229.  
  2230. Cheers,
  2231.  
  2232.                     / h+
  2233.  
  2234.  
  2235.  
  2236. --
  2237.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  2238.     Not speaking for IBM.
  2239.  
  2240.  
  2241. +++++++++++++++++++++++++++
  2242.  
  2243. >From pchang@Xenon.Stanford.EDU (The Weasel)
  2244. Date: 21 Aug 1994 16:05:16 GMT
  2245. Organization: Computer Science Department, Stanford University.
  2246.  
  2247. >Even though I'm not competent to refute any of his observations,  I felt that
  2248. >the tone of the article was "Microsoft paid me to write this and so I'm putting
  2249. >it in the best possible light."
  2250.  
  2251. Well, Jeff Alger does work for Microsoft now. I don't recall the articl
  2252. ementioning this.
  2253.  
  2254. Peter
  2255.  
  2256.  
  2257.  
  2258. +++++++++++++++++++++++++++
  2259.  
  2260. >From 103t_english@west.cscwc.pima.edu
  2261. Date: 21 Aug 94 15:55:16 MST
  2262. Organization: (none)
  2263.  
  2264. In article <337tvs$qkv@Times.Stanford.EDU>, pchang@Xenon.Stanford.EDU (The Weasel) writes:
  2265. >>Even though I'm not competent to refute any of his observations,  I felt that
  2266. >>the tone of the article was "Microsoft paid me to write this and so I'm putting
  2267. >>it in the best possible light."
  2268. > Well, Jeff Alger does work for Microsoft now. I don't recall the articl
  2269. > ementioning this.
  2270. > Peter
  2271.  
  2272. I got e-amil from the MacTech guy (another what'sisname) who says that Jeff A.
  2273. was NOT working for MS when the article was published...
  2274.  
  2275. Fair enough. However, one might wonder as to when Mr. Alger submitted his
  2276. application to Microsoft (or did they approach him?), and did he hope that they
  2277. would read his article in a favorable light, thereby being more likely to hire
  2278. him.
  2279.  
  2280.  
  2281. Interesting: via the Internet, we can establish possible motives for biased
  2282. reporting that can be read and debated by thousands of interested folks. 20
  2283. years ago, we would probably be waiting for an expose from the newspapers which
  2284. probably wouldn't be forthcoming in this case.
  2285.  
  2286.  
  2287. Lawson
  2288.  
  2289. +++++++++++++++++++++++++++
  2290.  
  2291. >From nagle@netcom.com (John Nagle)
  2292. Date: Mon, 22 Aug 1994 01:50:25 GMT
  2293. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2294.  
  2295. philip@cs.uct.ac.za (Philip Machanick) writes:
  2296. >John Nagle (nagle@netcom.com) wrote:
  2297.  
  2298. >:      A more fundamental problem is that all this machinery exists mostly
  2299. >: so you can embed different documents in your word processor and still
  2300. >: edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  2301. >: The Next Generation".  Yes, you can do other stuff, but the touted
  2302. >: advantage is mostly for integrated documents.  It's all focused on 
  2303. >: what documents look like, not what they mean.  Is that really worth all 
  2304. >: this complexity?  
  2305.  
  2306. >I think you miss the point. You can move away from a world of monolithic
  2307. >apps like word processors to generic apps in which you use your
  2308. >favourite editors. This is paradigm shift, not change of detail.
  2309.  
  2310.       This assumes you want an editor/document centered world.  There
  2311. are other models, such as a database-centered world.  For coordinating
  2312. the work of multiple people, a database-centered world may be more
  2313. appropriate.
  2314.  
  2315.       Whatever happened to Apple's SQL interface, anyway?  It was in
  2316. System 7, and optional in 7.1.  Is it in 7.5 at all?  I was hoping for
  2317. more data-centered apps, and groupware based on databases.
  2318.  
  2319.       The MacTech article indicates that OpenDoc is weak on locking
  2320. and networking.  How does this editor/document model work for multiple
  2321. users?
  2322.  
  2323.                     John Nagle
  2324.  
  2325. +++++++++++++++++++++++++++
  2326.  
  2327. >From sandvik@apple.com (Kent Sandvik)
  2328. Date: Mon, 22 Aug 1994 03:07:52 GMT
  2329. Organization: Dr. Stupid Meets Frankenstein
  2330.  
  2331. In article <CuuqMI.BMJ@news.otago.ac.nz>
  2332. michael@elwing.otago.ac.nz (Michael(tm) Hamel) writes:
  2333.  
  2334. > We have a substantial code base written in Object Pascal. Apple are saying to
  2335. > us, "Hey, rewrite everything in C++ in this entirely different way and thats
  2336. > the future". The trouble is, thats exactly the effort required to put us on
  2337. > Windows. Now, I believe, and I'm sure you'll agree, that moving to OpenDoc
  2338. > would be a much "nicer" thing to do and would produce a better user experience,
  2339. > etc. But it requires us to trust the Apple who brought us MacApp and BedRock
  2340. > with an awfully similar-looking exercise. And we just can't afford to do that.
  2341. > Maybe in twelve or eighteen months it will be clearer that we can, but we may
  2342. > have to commit ourselves before then. To Windows.
  2343.  
  2344. Hmm, I thought it was the other way around, OLE requires vtables and
  2345. SOM used in OpenDoc is more language independent. I need to check this
  2346. out. I think the reason some believe that OpenDoc is C++ centric is
  2347. that it uses ASLM today, but that's transitory.
  2348.  
  2349. As for Jeff A. writing the article, hehehe.... That explains the
  2350. controversy. He's also involved in MFC training and consulting. Anyway,
  2351. nobody's neutral in the computing wars. Where are the CORBRA followers,
  2352. BTW?
  2353.  
  2354. Cheers, Kent
  2355. - -
  2356. Kent Sandvik, sandvik@apple.com
  2357. --Private activities on the net, not related to the company I work for
  2358. --
  2359.  
  2360. +++++++++++++++++++++++++++
  2361.  
  2362. >From neil_ticktin@xplain.com (Neil Ticktin)
  2363. Date: Mon, 22 Aug 1994 06:26:02 GMT
  2364. Organization: MacTech Magazine/Xplain Corporation
  2365.  
  2366. In article <337tvs$qkv@Times.Stanford.EDU>, pchang@Xenon.Stanford.EDU (The
  2367. Weasel) wrote:
  2368.  
  2369. >> >Even though I'm not competent to refute any of his observations,  I
  2370. felt that
  2371. >> >the tone of the article was "Microsoft paid me to write this and so
  2372. I'm putting
  2373. >> >it in the best possible light."
  2374. >> 
  2375. >> Well, Jeff Alger does work for Microsoft now. I don't recall the articl
  2376. >> ementioning this.
  2377. >> 
  2378. >> Peter
  2379.  
  2380. Peter,
  2381.  
  2382. I need to be perfectly clear here.  Jeff was not in any way affiliated or
  2383. discussing affiliation with Microsoft until AFTER the article was
  2384. published.  As I heard it, Microsoft was so impressed by the article, they
  2385. asked him to join the company.
  2386.  
  2387. See what writing for MacTech Magazine can do for your career?  :)
  2388.  
  2389. But again -- he was unbiased at the time he wrote the article and that is
  2390. what is important.
  2391.  
  2392. Thanks,
  2393.  
  2394. Neil Ticktin
  2395. MacTech Magazine
  2396.  
  2397. - ---------------------------------------------------------------------
  2398.            Neil Ticktin, MacTech Magazine (formerly MacTutor)
  2399. PO Box 250055, Los Angeles, CA 90025 * 310-575-4343 * Fax: 310-575-0925
  2400.  For more info, anonymous ftp to ftp.netcom.com and cd to /pub/xplain
  2401.   custservice@xplain.com * editorial@xplain.com * adsales@xplain.com
  2402. marketing@xplain.com * accounting@xplain.com * pressreleases@xplain.com
  2403.    progchallenge@xplain.com * publisher@xplain.com * info@xplain.com
  2404.  
  2405. +++++++++++++++++++++++++++
  2406.  
  2407. >From philip@cs.uct.ac.za (Philip Machanick)
  2408. Date: 21 Aug 1994 11:59:23 +0200
  2409. Organization: Computer Science Department, University of Cape Town
  2410.  
  2411.  
  2412. Kent Sandvik (sandvik@apple.com) wrote:
  2413. : In article <334tko$jjq@cs.uct.ac.za>
  2414.  
  2415. : You are on the right track, a lot of the OLE versus OpenDoc has to do
  2416. : with techno-political, strategic games. Microsoft would not like to
  2417. : loose the lucrative market of selling base applications to office
  2418. : environments. Imagine a future where anyone could buy cheaper
  2419. : components and put together their favourite environment. The content is
  2420. : the content, and the tools are the tools.
  2421.  
  2422. : There will of course be a nice market for companies that bundle part
  2423. : handlers so the end result is indeed a classical application. However
  2424. : Microsoft would no longer have full control of their base line
  2425. : application offerings, and that's something they don't want to loose.
  2426. : Thus their technical drive behind OLE is more to make sure that
  2427. : applications offer OLE support, and of course their applications are
  2428. : the prime OLE engines. 
  2429.  
  2430. : Think about this next time you read technical blurbs from Microsoft
  2431. : about OLE. Anyway, private comments. I would rather see a world where
  2432. : all kinds of companies are allowed to compete on the application arena,
  2433. : instead of having one single big company dictate the rules.
  2434.  
  2435. I would still like to see more on OLE - even if I am on the right
  2436. track without knowing anything :) Does MS have an ftp site or WW
  2437. server with documentation?
  2438.  
  2439. In 1987, I started thinking about Brad Cox's Software IC idea -
  2440. reusable components written in a object-oriented language. His notion
  2441. was that software should be sold in small reusable units, the way
  2442. chips are sold.
  2443.  
  2444. However, I felt that something was missing. Most people who add ICs
  2445. (chips) to things like computers are not engineers who design the
  2446. whole thing from board level up. What was really needed was the
  2447. software analog of the printed circuit board (PCB), already populated
  2448. with enough ICs to get you started. Something like a PC logic board,
  2449. with RAM, FPU and other options left out - and slots for expansion.
  2450.  
  2451. I considered various candidates for software PCBs among existing OO
  2452. tools, and felt none of them provided enough support for plugging in
  2453. components - they were more like the software equivalent of wire
  2454. wrap prototypes. A true software PCB would have to define an
  2455. infrastructure for adding components that would not only define
  2456. default behaviours, like low-level printer protocols, but also
  2457. ways for components to interact (the software analog of traces on
  2458. the PCB, and hardware interaction protocols - voltage levels etc.).
  2459. Components would have to define how they appeared on a page,
  2460. shared space with neighouring objects, etc.
  2461.  
  2462. Another idea I had was that everything should be a document -
  2463. there shouldn't even be a separate file system. Viewing what's
  2464. on your disk then becomes a special case of viewing contents
  2465. of a document - and alternative views also become a natural
  2466. concept. I dislike imposing a single hierarchy on the world,
  2467. and by allowing alternative views of the "file system", it
  2468. should be possible to navigate through your disk in a way
  2469. natural to the task at hand. For example, group together
  2470. everything created after a certain date, view everything
  2471. related to a specific project etc. I also thought up the
  2472. idea of thumbnail views - I felt something was needed
  2473. between an icon and a full view of a document.
  2474.  
  2475. I think it would be very interesting to put together an
  2476. OpenDoc hierarchical browser similar to the Smalltalk
  2477. browser, which would allow navigation of the file system
  2478. according to a range of criteria (take the System 7 Find
  2479. as a starting point). The lowest level of the browser would
  2480. be a document - which you could start working on. One level
  2481. up, names of everything that matched the search criteria,
  2482. with the option of expanding to thumbnail views. Next level
  2483. up, the search criteria.
  2484.  
  2485. I don't claim all these ideas are original - though until
  2486. OpeDoc appeared, I don't recall seeing them put together
  2487. in this way. The way OpenDoc packages these concepts is
  2488. a paradigm shift - it changes the way we thing about
  2489. documents and applications - it is not just another
  2490. kludge to make it easier to share information.
  2491.  
  2492. I had a student do a protype software PCB in MacApp and tried
  2493. to get a paper published on the subject, and guess what? A few
  2494. of the referees were really taken with the idea, others said
  2495. so what - everyone's doing this. (Something like the people
  2496. who are now saying so what - OLE is almost the same as
  2497. OpenDoc.) My prototype was not very complete - I didn't have
  2498. a very good model of dynamic linking - but it was prossible
  2499. in principle to paste in editors using ResEdit. I also didn't
  2500. have all the machinery for communication between different
  2501. kinds of objects (parts in OpenDoc terminology). I suppose
  2502. I could have pushed the idea further but I moved on to
  2503. other things.
  2504.  
  2505. More recently, I saw an element of the idea in the way
  2506. Claris Works integrated patches of other documents in
  2507. a base document, though without the extensibility. It
  2508. is interesting that a lot of the examples in the OpenDoc
  2509. printed documentation come from Claris Works.
  2510.  
  2511. Where does OpenDoc fit into this? A base OpenDoc collection of part
  2512. handlers, ready to have more added to make a useful "application", is
  2513. a software PCB. OpenDoc itself is more like a standard and set of
  2514. tools for creating such PCBs - the software analogue of something like
  2515. PReP.
  2516.  
  2517. Any further thoughts on this?
  2518. --
  2519. Philip Machanick                      philip@cs.wits.ac.za
  2520. Computer Science Department, University of he Witwatesrand
  2521. 2050 Wits, South Africa 27(11)716-3309 fax 339-7965
  2522. (at University of Cape Town until November: 27(21)650-4058)
  2523.  
  2524. +++++++++++++++++++++++++++
  2525.  
  2526. >From h+@nada.kth.se (Jon W{tte)
  2527. Date: Mon, 22 Aug 1994 14:54:24 +0200
  2528. Organization: Royal Institute of Something or other
  2529.  
  2530. In article <nagleCuwyG1.IEJ@netcom.com>,
  2531. nagle@netcom.com (John Nagle) wrote:
  2532.  
  2533. >Whatever happened to Apple's SQL interface, anyway?  It was in
  2534. >System 7, and optional in 7.1.  Is it in 7.5 at all?  I was hoping for
  2535. >more data-centered apps, and groupware based on databases.
  2536.  
  2537. It's undergone development; they now support ODBC alongside 
  2538. with DAL. ODBC is of course a Microsoft standard, but in this 
  2539. one case it seems Apple and Microsoft could agree on using the 
  2540. same technology...
  2541.  
  2542. Of course, doing ODBC -> DAL tranlsation, talking to a DAL 
  2543. server that translates into native SQL, and then finally 
  2544. getting at the database isn't optimal, performance-wise.
  2545.  
  2546. Cheers,
  2547.  
  2548.                 / h+
  2549.  
  2550.  
  2551. --
  2552.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  2553.  "Don't Deal with a Dragon."
  2554.  
  2555.  
  2556. +++++++++++++++++++++++++++
  2557.  
  2558. >From sandvik@apple.com (Kent Sandvik)
  2559. Date: Tue, 23 Aug 1994 00:41:13 GMT
  2560. Organization: Dr. Stupid Meets Frankenstein
  2561.  
  2562. In article <3378hr$mkp@cs.uct.ac.za>
  2563. philip@cs.uct.ac.za (Philip Machanick) writes:
  2564.  
  2565. > In 1987, I started thinking about Brad Cox's Software IC idea -
  2566. > reusable components written in a object-oriented language. His notion
  2567. > was that software should be sold in small reusable units, the way
  2568. > chips are sold.
  2569.  
  2570. Jacobson's book "Object Oriented Software Engineering" has a fairly
  2571. good chapter describing all the problems why software reusable
  2572. components never took off in the initial place. The latest Scientific
  2573. American also has an article describing more about the implications. My
  2574. terse comment is: "It's all in the culture, dammit".
  2575.  
  2576. One tricky way to bypass such cases is to promote a frame into which
  2577. people could write extensions, and promote the content rather than the
  2578. functionality (Photoshop, Premier, OpenDoc...). Another example of a
  2579. smart content container is QuickTime; it is defined, and it's up to
  2580. developers to write applications and tools that reuse or create content
  2581. (QT). Personally I think this is the way to do rather than forcing
  2582. companies and developers to use pre-defined components that don't do
  2583. the work required, and we are back on the hacking drawing board.  And
  2584. we should not lock ourselves to a particular computer language (style
  2585. OLE and vtables). 
  2586.  
  2587. Anyway, personal and of course politically flavored comments :-).
  2588.  
  2589. --Kent
  2590. - -
  2591. Kent Sandvik, sandvik@apple.com
  2592. --Private activities on the net, not related to the company I work for
  2593. --
  2594.  
  2595. +++++++++++++++++++++++++++
  2596.  
  2597. >From pathak@world.std.com (Heeren H Pathak)
  2598. Date: Tue, 23 Aug 1994 13:26:19 GMT
  2599. Organization: The World Public Access UNIX, Brookline, MA
  2600.  
  2601. In article <nagleCuwyG1.IEJ@netcom.com>, John Nagle <nagle@netcom.com> wrote:
  2602. >      This assumes you want an editor/document centered world.  There
  2603. >are other models, such as a database-centered world.  For coordinating
  2604. >the work of multiple people, a database-centered world may be more
  2605. >appropriate.
  2606. >
  2607.  
  2608. Believe it or not this is where OpenDoc may really shine.
  2609.  
  2610. Despite the blasting of SOM in Jeff Alger's article  comparing OpenDoc vs OLE,
  2611. SOM may be the the biggest "enabling " technology of OpenDoc.  OpenDoc
  2612. is really an object model on extending SOM.  SOM is a technology for 
  2613. supporting distributed objects.  This happens to be ideal for developing
  2614. object components.  SOM is based on a "industry standard" specification 
  2615. released by a consoritium called the Object Management Group.  There
  2616. are working groups in this consortia that are defining object models and
  2617. frameworks for database systems, collaborative computing, transaction 
  2618. processing, etc...  As these object models get defined, there is no
  2619. technical reason they could not be adopted by CLI.  In fact, CLI has been
  2620. asked to submit OpenDoc as the "standard" for compound documents.
  2621.  
  2622. The biggest danger in all of this is the "standard" will be too late.  I
  2623. believe this is a real risk.  However, I think the OMG has a very early 
  2624. start on this technology and has plenty of time to get things done.
  2625.  
  2626. Heeren Pathak
  2627.  
  2628.  
  2629.  
  2630. +++++++++++++++++++++++++++
  2631.  
  2632. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  2633. Date: Wed, 24 Aug 1994 00:39:33 GMT
  2634. Organization: Apple Computer
  2635.  
  2636. 103t_english@west.cscwc.pima.edu writes:
  2637. > Even though I'm not competent to refute any of his observations,  I felt
  2638. that
  2639. > the tone of the article was "Microsoft paid me to write this and so I'm
  2640. putting
  2641. > it in the best possible light."
  2642. > Anyone else get this feeling?
  2643.  
  2644. I'm obviously not unbiased in this, so I'll skip my own opinions of the
  2645. article; but I can point out that since the publication of said article, the
  2646. author has accepted a position at Microsoft. Draw your own conclusions.
  2647.  
  2648. --Jens Alfke                           jens_alfke@powertalk.apple.com
  2649.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  2650.  
  2651. +++++++++++++++++++++++++++
  2652.  
  2653. >From alger@netcom.com (Jeff Alger)
  2654. Date: Thu, 25 Aug 1994 06:51:41 GMT
  2655. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2656.  
  2657. OK, I've had enough of this.  If you want to disagree with my opinions, 
  2658. fine.  I have yet to have anyone question items of fact in all of a 6000 
  2659. word article which was submitted to both Microsoft and Apple for review 
  2660. before publication.
  2661.  
  2662. I will say this once and only once because it isn't worth the trouble.  
  2663. Until becoming an employee of Microsoft last week, two months after the 
  2664. article was completed, I had never accepted a dime from Microsoft nor had 
  2665. any business relationship whatsoever, other than asking them for 
  2666. information as I would have Apple or any other vendor.  I had no interest 
  2667. in getting a job with Microsoft or anyone else at the time of writing the 
  2668. article.  Microsoft approached me AFTER the article was submitted to 
  2669. MacTech in final form.  I find it highly doubtful that they would have 
  2670. been interested in hiring me if my integrity was for sale and I certainly 
  2671. would not have been interested in working for a company that would act in 
  2672. such an unethical way.  At no time was any offer of money or employment 
  2673. made in connection with the article.
  2674.  
  2675. There are many of you out there that have known me for many years within
  2676. the Mac community - Chairman of MADA for two years, instructor at Apple's
  2677. Developer University, author of a popular book on object-oriented
  2678. development for the Mac, consultant, contributing editor to Frameworks,
  2679. presenter at several WWDC's.  My consulting practice has always been built
  2680. on the highest degree of professionalism and integrity and yes, Kent, I
  2681. have dealt with Windows, as well as Mac, mainframe, business process
  2682. reengineering and any other problems my clents have needed help with. 
  2683. That is in part why I was chosen to write this article.  Certainly that
  2684. was known to Apple when they OK'd me as an independent reviewer of the two
  2685. products. 
  2686.  
  2687. This sort of mud-slinging has no place in a professional forum.  If any of
  2688. you have a problem with my ethics, take it up directly with me; don't drop
  2689. snide observations in a public forum.  Those who know me can tell you that
  2690. I will answer any and all questions honestly about my assumptions,
  2691. methodology and motivations in writing the article. 
  2692.  
  2693. I can be reached either at this email address or at jeffal@microsoft.com.
  2694.  
  2695. Regards,
  2696. Jeff Alger
  2697.  
  2698. Jens Alfke (jens_alfke@powertalk.apple.com) wrote:
  2699. : 103t_english@west.cscwc.pima.edu writes:
  2700. : > Even though I'm not competent to refute any of his observations,  I felt
  2701. : that
  2702. : > the tone of the article was "Microsoft paid me to write this and so I'm
  2703. : putting
  2704. : > it in the best possible light."
  2705. : > Anyone else get this feeling?
  2706.  
  2707. : I'm obviously not unbiased in this, so I'll skip my own opinions of the
  2708. : article; but I can point out that since the publication of said article, the
  2709. : author has accepted a position at Microsoft. Draw your own conclusions.
  2710.  
  2711. : --Jens Alfke                           jens_alfke@powertalk.apple.com
  2712. :                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  2713. -- 
  2714.  
  2715.  
  2716. +++++++++++++++++++++++++++
  2717.  
  2718. >From hanrek@cts.com (Mark Hanrek)
  2719. Date: 25 Aug 1994 21:08:03 GMT
  2720. Organization: The Information Workshop
  2721.  
  2722. > This sort of mud-slinging has no place in a professional forum.  
  2723.  
  2724. Here! Here! 
  2725.  
  2726. Everyone deserves respect, and the benefit of the doubt.
  2727.  
  2728.  
  2729.  
  2730. Mark Hanrek
  2731. The Information Workshop
  2732.  
  2733. - --------------------------------------------------------------------
  2734. ( And y'all though I was going to point out that csmp is a newsgroup, 
  2735.   not a forum, dintcha!  :)
  2736. >From eric.larson@f620.n2605.z1.fidonet.org (eric larson)
  2737. Subject: Lets talk OpenDoc
  2738. Date: 21 Aug 94 08:27:51 -
  2739. Organization: FidoNet: Shockwave Rider, USR V.Everything +1(908)294-0659 
  2740.  
  2741.  >      A more fundamental problem is that all this machinery exists mostly
  2742.  > so you can embed different documents in your word processor and still
  2743.  > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  2744.  > The Next Generation".  Yes, you can do other stuff, but the touted
  2745.  > advantage is mostly for integrated documents.  It's all focused on
  2746.  > what documents look like, not what they mean.  Is that really worth all
  2747.  > this complexity?
  2748.  
  2749. One concern I have about this technology is what it is going to do to document
  2750. portability.
  2751.  
  2752. +++++++++++++++++++++++++++
  2753.  
  2754. >From nagle@netcom.com (John Nagle)
  2755. Date: Mon, 29 Aug 1994 19:04:43 GMT
  2756. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2757.  
  2758. eric.larson@f620.n2605.z1.fidonet.org (eric larson) writes:
  2759. Nagle wrote:
  2760. > >      A more fundamental problem is that all this machinery exists mostly
  2761. > > so you can embed different documents in your word processor and still
  2762. > > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  2763. > > The Next Generation".  Yes, you can do other stuff, but the touted
  2764. > > advantage is mostly for integrated documents.  It's all focused on
  2765. > > what documents look like, not what they mean.  Is that really worth all
  2766. > > this complexity?
  2767. >One concern I have about this technology is what it is going to do to document
  2768. >portability.
  2769.  
  2770.       Or long-term document integrity.  Will you still be able to read
  2771. your document a few years downstream, after all the applications have
  2772. changed?  And if you can't, which vendor do you call for help?
  2773.  
  2774.       And reading a document two decades hence may present real problems.
  2775.  
  2776.                     John Nagle
  2777.  
  2778. +++++++++++++++++++++++++++
  2779.  
  2780. >From E.J. Draper <draper@utmdacc.mda.uth.tmc.edu>
  2781. Date: 29 Aug 1994 20:29:43 GMT
  2782. Organization: U.T.M.D. Anderson Cancer Center
  2783.  
  2784.  
  2785. >> > edit them with appropriate tools.  It's sort of "Publish and
  2786. Subscribe,
  2787. >> > The Next Generation".  Yes, you can do other stuff, but the touted
  2788.  
  2789. How many times a day do you use Publish and Subscribe?  
  2790.  
  2791. The one, and only, application I have for Publish and Subscribe
  2792. technology is checking the amount of vacation hours I've got coming to me
  2793. from the departmental spreadsheet.  I use it once a week at the most,
  2794. probably more like once a month. 
  2795.  
  2796. I can see some interesting applications of OpenDoc technology, but I
  2797. certainly don't feel it's as mind-boggling awesome as the market-droids
  2798. would have us think.  What's OpenDoc going to do for me?  Does a compiler
  2799. part make sense?  How about news reader part?  An email part? A PIM part?
  2800. A Resorcerer part?  How does OpenDoc improve the way that people work
  2801. with information?  Does it make the computer more approachable to novice
  2802. users?  What specific problem is it trying to solve?
  2803.  
  2804. It seems like the whole OpenDoc paradigm starts breaking down after you
  2805. get past the Graphic+MooV+Text+Spreadsheet model.
  2806.  
  2807.  
  2808.       |E|J-  ED DRAPER
  2809.  rEpar|D|<-  Radiologic/Pathologic Institute
  2810.              The University of Texas M.D. Anderson Cancer Center
  2811.              draper@utmdacc.mda.uth.tmc.edu
  2812.  
  2813. +++++++++++++++++++++++++++
  2814.  
  2815. >From nagle@netcom.com (John Nagle)
  2816. Date: Tue, 30 Aug 1994 05:28:45 GMT
  2817. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2818.  
  2819. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  2820. >It seems like the whole OpenDoc paradigm starts breaking down after you
  2821. >get past the Graphic+MooV+Text+Spreadsheet model.
  2822.  
  2823.       I think he has a point.  I can imagine a CAD system based on this
  2824. approach, where you click on a subassembly to get to the detailed drawings.
  2825. But that doesn't even fit the OpenDoc model, which is 2D, not 3D.
  2826. What, besides embed stuff in word processor documents, is one really likely
  2827. to do with OpenDoc?
  2828.  
  2829.       By the way, how does OpenDoc do version management?
  2830.  
  2831.                     John Nagle
  2832.  
  2833. +++++++++++++++++++++++++++
  2834.  
  2835. >From quinlan@kits.sfu.ca (Brian Quinlan)
  2836. Date: 30 Aug 94 07:09:52 GMT
  2837. Organization: Simon Fraser University
  2838.  
  2839. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  2840.  
  2841. >I can see some interesting applications of OpenDoc technology, but I
  2842. >certainly don't feel it's as mind-boggling awesome as the market-droids
  2843. >would have us think.  What's OpenDoc going to do for me?  Does a compiler
  2844. >part make sense?  How about news reader part?  An email part? A PIM part?
  2845. >A Resorcerer part?  How does OpenDoc improve the way that people work
  2846. >with information?  Does it make the computer more approachable to novice
  2847. >users?  What specific problem is it trying to solve?
  2848.  
  2849. You could build a development system by have a project manager as the
  2850. base and compiler, interface builders, object browsers, debuggers and
  2851. editors as parts. Notice that Symantic has a project manager and then
  2852. calls the appropriate compiler and editor when they are needed. You
  2853. could have a bases upon which you had a newreader, email and ftp parts.
  2854. Anyone agree with this?
  2855.  
  2856.  
  2857. +++++++++++++++++++++++++++
  2858.  
  2859. >From jdelkins@lilly.com (Joel D. Elkins)
  2860. Date: Tue, 30 Aug 1994 09:39:27 -0600
  2861. Organization: NewMedia, Inc., Indianapolis, IN
  2862.  
  2863. In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>, E.J. Draper
  2864. <draper@utmdacc.mda.uth.tmc.edu> wrote:
  2865.  
  2866. > I can see some interesting applications of OpenDoc technology, but I
  2867. > certainly don't feel it's as mind-boggling awesome as the market-droids
  2868. > would have us think.  What's OpenDoc going to do for me?  Does a compiler
  2869. > part make sense?  How about news reader part?  An email part? A PIM part?
  2870. > A Resorcerer part?  How does OpenDoc improve the way that people work
  2871. > with information?  Does it make the computer more approachable to novice
  2872. > users?  What specific problem is it trying to solve?
  2873.  
  2874. And what about client-server based apps, much in use by corporations today,
  2875. for which the "document" paradigm really doesn't apply. Most of
  2876. the c/s apps I've seen are more "forms" based. How will OpenDoc improve
  2877. such apps? Unless it does, I don't see widespread acceptance by corporations
  2878. for their in-house development efforts.
  2879.  
  2880. -- 
  2881. Joel D. Elkins, N5USU              |                   NewMedia, Inc.
  2882. JDElkins@lilly.com                 |                 Indianapolis, IN
  2883.  
  2884. +++++++++++++++++++++++++++
  2885.  
  2886. >From rmah@panix.com (Robert Mah)
  2887. Date: Tue, 30 Aug 1994 12:47:01 -0500
  2888. Organization: One Step Beyond
  2889.  
  2890. jdelkins@lilly.com (Joel D. Elkins) wrote:
  2891.  
  2892. ) And what about client-server based apps, much in use by corporations
  2893. ) today, for which the "document" paradigm really doesn't apply. Most of
  2894. ) the c/s apps I've seen are more "forms" based. How will OpenDoc improve
  2895. ) such apps? Unless it does, I don't see widespread acceptance by
  2896. ) corporations for their in-house development efforts.
  2897.  
  2898. While Apple has emphasised the user interface portion of OpenDoc, the 
  2899. "document-centered" model, from my conversations with one of the OpenDoc
  2900. developers at the last MacWorld expo, I firmly beleive that OpenDoc's
  2901. flexible architecture will help corporate developers a great deal.
  2902.  
  2903. Aside...
  2904.   Q: What is the difference between a "form" and a "document"?
  2905.   A: A form only has 1 page, but document's have a lot!  :-)
  2906.  
  2907. A couple of, not widely talked about, components are integrall here.
  2908. The first is the name space management feature.  I guess this is part
  2909. of SOM, but OpenDoc gives you an architecture to wrap your mind around.
  2910. With name space management, you could register a "analysis engine" 
  2911. part on one machine, and have documents on another machine access it
  2912. to perform the analysis.
  2913.  
  2914. Other parts that could/are being developed include hooks for retreiving
  2915. data from SQL databases, intelligent report writing, etc.
  2916.  
  2917. Another problem that OpenDoc will eventually help solve is the dreaded
  2918. "why can't XYZ app do what Excel does?"  How many times have you, as a
  2919. in house developer, written a software package only to have the users
  2920. come back asking for features that are found in other commercial packages?
  2921. It may be obvious to us that adding these frills would take too much 
  2922. time and cost too much, but it's not obvious to the users.  By encouraging
  2923. more vendors to implement a wide variety of parts that can interoperate
  2924. together easily, we'll be able to add these frills at minimal cost.
  2925.  
  2926. Personally, I think that OpenDoc could make the creation of special
  2927. purpose software much easier and much more enjoyable.
  2928.  
  2929. Cheers,
  2930. Rob
  2931. _____________________________________________________________________
  2932. Robert S. Mah           Software Development          +1.212.947.6507
  2933. One Step Beyond        and Network Consulting          rmah@panix.com
  2934.  
  2935. +++++++++++++++++++++++++++
  2936.  
  2937. >From lentz@rossi.astro.nwu.edu (Robert Lentz)
  2938. Date: 30 Aug 1994 16:45:54 GMT
  2939. Organization: Northwestern University, Evanston, Illinois, USA
  2940.  
  2941. In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>,
  2942. E.J. Draper  <draper@utmdacc.mda.uth.tmc.edu> wrote:
  2943. >...
  2944. >It seems like the whole OpenDoc paradigm starts breaking down after you
  2945. >get past the Graphic+MooV+Text+Spreadsheet model.
  2946.  
  2947. Well, that covers all the basic types which other applications use too.
  2948.  
  2949. Let's see: newsreader using a text part for composing messages, same with
  2950. mail program; perhaps sometimes using a WWW part for displaying HTML
  2951. documents, which then uses the text part and any necessary graphics parts
  2952. again...
  2953.  
  2954. I think it could go far.
  2955.  
  2956. -Robert
  2957. -- 
  2958. lentz@rossi.astro.nwu.edu            http://www.astro.nwu.edu/lentz/plan.html
  2959.     "You have to push as hard as the age that pushes against you."
  2960.                     -Flannery O'Connor
  2961.  
  2962. +++++++++++++++++++++++++++
  2963.  
  2964. >From nagle@netcom.com (John Nagle)
  2965. Date: Tue, 30 Aug 1994 16:40:42 GMT
  2966. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2967.  
  2968. quinlan@kits.sfu.ca (Brian Quinlan) writes:
  2969. >You could build a development system by have a project manager as the
  2970. >base and compiler, interface builders, object browsers, debuggers and
  2971. >editors as parts. Notice that Symantic has a project manager and then
  2972. >calls the appropriate compiler and editor when they are needed. 
  2973.     The whole development environment shouldn't be a structured document,
  2974. but source programs might be.  Programs today have parts which are visual
  2975. and parts which are textual, and those parts need to be better connected.
  2976. HyperCard already does this.
  2977.  
  2978. >You could have a basis upon which you had a newsreader, email and ftp parts.
  2979.     You could, but why would you want to embed those functions in a
  2980. structured document?  A document is the wrong metaphor for that collection
  2981. of functions.  There's no content in which you're embedding those
  2982. functions.  A multiwindow application is more appropriate.
  2983.  
  2984.     An OpenDoc or OLE-based creation system for multimedia content
  2985. would make sense, but that's an extension of the word processor metaphor.
  2986.  
  2987.     The whole multi-source document concept is useful, but only for things
  2988. that naturally have a document metaphor.
  2989.  
  2990.                     John Nagle
  2991.  
  2992. +++++++++++++++++++++++++++
  2993.  
  2994. >From susser@apple.com (Joshua Susser)
  2995. Date: Tue, 30 Aug 1994 17:29:47 GMT
  2996. Organization: Apple Computer - AppleSoft
  2997.  
  2998. I'm going to try to respond to several issues raised in this thread, to
  2999. keep the branching factor down.  I don't usually have time to do this, but
  3000. since I do, here goes...
  3001.  
  3002. eric.larson@f620.n2605.z1.fidonet.org (eric larson) writes:
  3003. > One concern I have about this technology is what it is going to do to
  3004. > document portability.
  3005.  
  3006. If anything, OpenDoc should make your documents MORE portable.  OpenDoc
  3007. documents will be binary-compatible across all supported platforms.  Our
  3008. acid test is being able to open a document on a server from a Mac and a
  3009. Windows machine at the same time, which you should be able to do when we
  3010. ship.
  3011.  
  3012. nagle@netcom.com (John Nagle) wrote:
  3013. >       Or long-term document integrity.  Will you still be able to read
  3014. > your document a few years downstream, after all the applications have
  3015. > changed?  And if you can't, which vendor do you call for help?
  3016. >       And reading a document two decades hence may present real problems.
  3017.  
  3018. I already have this problem.  Some documents I have that are only 3 or 4
  3019. years old are suddenly non-readable, because their applications won't run
  3020. on current software, or whatever.  But we have factored the architecture
  3021. so that if you don't have an editor for one kind of part in your document,
  3022. you can still open the document and edit the other parts for which you do
  3023. have editors.  We also encourage developers to store their parts in
  3024. multiple formats, so that if you don't have an editor for one format, you
  3025. may for another.
  3026.  
  3027. I have no idea what the world will be like in 20 years, and neither do
  3028. you.  I doubt anyone will be using anything as mundane as compound
  3029. documents by then, so don't worry about it. :-)
  3030.  
  3031. nagle@netcom.com (John Nagle) wrote:
  3032. > E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  3033. > >It seems like the whole OpenDoc paradigm starts breaking down after you
  3034. > >get past the Graphic+MooV+Text+Spreadsheet model.
  3035. >       I think he has a point.  I can imagine a CAD system based on this
  3036. > approach, where you click on a subassembly to get to the detailed drawings.
  3037. > But that doesn't even fit the OpenDoc model, which is 2D, not 3D.
  3038. > What, besides embed stuff in word processor documents, is one really likely
  3039. > to do with OpenDoc?
  3040.  
  3041. OpenDoc windows and layout objects are 2D, because that's the
  3042. dimensionality of the imaging devices available today (for the most
  3043. part).  But we did leave enough room in the API to support 3D parts.  It
  3044. should in fact be possible to embed a text part onto the surface of a 3D
  3045. sphere part.
  3046.  
  3047. But even without 3D, OpenDoc is suitable for much more than just a
  3048. "Graphic+MooV+Text+Spreadsheet" kind of document.  See below.
  3049.  
  3050. >       By the way, how does OpenDoc do version management?
  3051.  
  3052. OpenDoc documents provide a facility for creating a named revision of your
  3053. document called a "draft".  Each draft is basically a checkpoint of the
  3054. state of the document.  You can create a new draft at any time, have as
  3055. many as you like, open old drafts to compare to newer, etc.  Using Bento,
  3056. we can store each draft as a delta on the state of the previous draft, so
  3057. we don't double the size of a document to add a second draft.  There's
  3058. lots more about drafts, but you can read the documentation for that.
  3059.  
  3060. jdelkins@lilly.com (Joel D. Elkins) wrote:
  3061. > And what about client-server based apps, much in use by corporations today,
  3062. > for which the "document" paradigm really doesn't apply. Most of
  3063. > the c/s apps I've seen are more "forms" based. How will OpenDoc improve
  3064. > such apps? Unless it does, I don't see widespread acceptance by corporations
  3065. > for their in-house development efforts.
  3066.  
  3067. Actually, OpenDoc has a great story for in-house MIS types.  They have two
  3068. big desires - being able to use COTS (Commercial Off The Shelf) Software,
  3069. and getting a vertical solution for their special needs.  Notice these two
  3070. desires are in direct conflict.  But with component technology like
  3071. OpenDoc, you can buy a set of COTS part editors and maybe only have to
  3072. write one or two special purpose ones in house.  Then create standard
  3073. stationery using these chosen editors, write some scripts to integrate the
  3074. parts functionality, and presto, it's an instant vertical application,
  3075. custom made for your department with mostly COTS components.
  3076.  
  3077. As for client-server, OpenDoc supports the concept of what we've been
  3078. calling an "embedded client".  Create a part editor that can operate as a
  3079. client for a remote server.  Now you have client parts that you can embed
  3080. in your document anywhere you'd like.  The state of the part is the query
  3081. rule plus some cached information about the results of the last query. 
  3082. When you open the document, push a button, or whatever, the part queries
  3083. the server and then displays the results of the query as its contents.  I
  3084. saw a demo yesterday of just such a client part editor written by Oracle
  3085. (it's a demo, not a future product).  You could even link a chart part to
  3086. data returned by a query.  Apparently this is even more powerful than
  3087. current solutions, as it is much easier to have a document ("solution")
  3088. that interacts with many databases - just create a part for each one.
  3089.  
  3090. Other kinds of embedded clients are easily possible.  Imagine a stock
  3091. ticker part that gave running price quotes on your 10 favorite stocks. 
  3092. Link this to a spreadsheet part to help you compute the net value of your
  3093. portfolio.
  3094.  
  3095. A good rule of thumb for what could and should be written as a part editor is:
  3096. "If it has a user interface, it should be a part."
  3097.  
  3098. Well, my compile is done, so back to work...
  3099.  
  3100. Joshua Susser, Object Contortionist
  3101. Apple Computer - AppleSoft, OpenDoc Engineering
  3102. inet: susser@apple.com | link: susser.j | phone: 408/974-6997
  3103.  
  3104. +++++++++++++++++++++++++++
  3105.  
  3106. >From h+@nada.kth.se (Jon W{tte)
  3107. Date: Tue, 30 Aug 1994 20:33:09 +0200
  3108. Organization: Royal Institute of Something or other
  3109.  
  3110. In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>,
  3111. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3112.  
  3113. >would have us think.  What's OpenDoc going to do for me?  Does a compiler
  3114. >part make sense?
  3115.  
  3116. Yes; or rather; an IDE is a collection of parts like an editor 
  3117. part, a code generator part, a project file part, ...
  3118.  
  3119. >How about news reader part?
  3120.  
  3121. That's also a collection of an editor part, a news collection 
  3122. part, ...
  3123.  
  3124. >An email part?
  3125.  
  3126. See above.
  3127.  
  3128. >users?  What specific problem is it trying to solve?
  3129.  
  3130. Read the OpenDoc white paper. A simple example:
  3131.  
  3132. Your news reader comes with the SimpleText text edittig part. 
  3133. Unfortunately, this part does not handle parts larger than 32k, 
  3134. so to decode alt.binaries.pictures.erotica.jello, you instead 
  3135. use the Alpha text editting part which handles larger 
  3136. documents, and write a small script that scans the news 
  3137. collection part for multi-part postings, uses Alpha to 
  3138. concatenate them, uses the StuffIt mangling part to get an 
  3139. image which you display in the JPEGView picture display part.
  3140.  
  3141. Cheers,
  3142.  
  3143.                     / h+
  3144.  
  3145.  
  3146. --
  3147.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  3148.  
  3149.   Reality exists only in your imagination.
  3150.  
  3151.  
  3152. +++++++++++++++++++++++++++
  3153.  
  3154. >From 103t_english@west.cscwc.pima.edu
  3155. Date: 30 Aug 94 11:18:38 MST
  3156. Organization: (none)
  3157.  
  3158. In article <nagleCvCwzu.EF2@netcom.com>, nagle@netcom.com (John Nagle) writes:
  3159. > quinlan@kits.sfu.ca (Brian Quinlan) writes:
  3160. >>You could build a development system by have a project manager as the
  3161. >>base and compiler, interface builders, object browsers, debuggers and
  3162. >>editors as parts. Notice that Symantic has a project manager and then
  3163. >>calls the appropriate compiler and editor when they are needed. 
  3164. >     The whole development environment shouldn't be a structured document,
  3165. > but source programs might be.  Programs today have parts which are visual
  3166. > and parts which are textual, and those parts need to be better connected.
  3167. > HyperCard already does this.
  3168. >>You could have a basis upon which you had a newsreader, email and ftp parts.
  3169. >     You could, but why would you want to embed those functions in a
  3170. > structured document?  A document is the wrong metaphor for that collection
  3171. > of functions.  There's no content in which you're embedding those
  3172. > functions.  A multiwindow application is more appropriate.
  3173. >     An OpenDoc or OLE-based creation system for multimedia content
  3174. > would make sense, but that's an extension of the word processor metaphor.
  3175. >     The whole multi-source document concept is useful, but only for things
  3176. > that naturally have a document metaphor.
  3177. >                     John Nagle
  3178.  
  3179. Something that everyone seems to be missing in this discussion:
  3180.  
  3181. a while back, the OpenDoc architects had an AOL discussion which was archived.
  3182. >From the archive, I gleaned this interesting tidbit (from memory, sorry):
  3183.  
  3184. OpenDoc is robust enough to allow the creation of a Virtual REality where every
  3185. object in the VR is run on its own computer and collated by OpenDoc over the
  3186. network.
  3187.  
  3188.  
  3189. One would assume that the "document" in this case, would be a set of 3D VR
  3190. glasses or a 3D virtual environment complete with sound effects and tactile
  3191. effects ala high-end flight simulators (and beyond).
  3192.  
  3193.  
  3194. Given this ability of OpenDoc, what CAN'T it do?
  3195.  
  3196.  
  3197.  
  3198. Lawson
  3199.  
  3200. +++++++++++++++++++++++++++
  3201.  
  3202. >From E.J. Draper <draper@utmdacc.mda.uth.tmc.edu>
  3203. Date: 30 Aug 1994 18:47:40 GMT
  3204. Organization: U.T.M.D. Anderson Cancer Center
  3205.  
  3206.  
  3207. >If anything, OpenDoc should make your documents MORE portable.  OpenDoc
  3208. >documents will be binary-compatible across all supported platforms. 
  3209.  
  3210. Bento, and not OpenDoc, is the technology that will enable us to do this.
  3211.  Bento can be used quite easily by software other than OpenDoc parts.
  3212.  
  3213. >Actually, OpenDoc has a great story for in-house MIS types. 
  3214.  
  3215. Wrong. Users who *do not* build *DOCUMENTS* will be annoyed at having to
  3216. artificially create documents and incorporate parts just to get something
  3217. done. The result of every human-machine interaction is *not* a document. 
  3218. OpenDoc is an interesting and useful addition to the concept of building
  3219. documents, but it's only interesting and useful in those terms.  
  3220.  
  3221. OLE has been around for quite some time and what has the industry
  3222. learned?  How many people are using OLE in mission critical applications
  3223. every day?  How many people are out there screaming for OLE versions of
  3224. Doom and Netware Client tools?  
  3225.  
  3226. >A good rule of thumb for what could and should be written as a part
  3227. editor is:
  3228. >"If it has a user interface, it should be a part."
  3229.  
  3230. I vehemently disagree.
  3231.  
  3232.  
  3233.       |E|J-  ED DRAPER
  3234.  rEpar|D|<-  Radiologic/Pathologic Institute
  3235.              The University of Texas M.D. Anderson Cancer Center
  3236.              draper@utmdacc.mda.uth.tmc.edu
  3237.  
  3238. +++++++++++++++++++++++++++
  3239.  
  3240. >From tbrown@magnus.acs.ohio-state.edu (Ted C Brown)
  3241. Date: 30 Aug 1994 19:15:12 GMT
  3242. Organization: The Ohio State University
  3243.  
  3244. In article <33vno2$gco@news.acns.nwu.edu>,
  3245. Robert Lentz <lentz@rossi.astro.nwu.edu> wrote:
  3246. >In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>,
  3247. >E.J. Draper  <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3248. >>...
  3249. >>It seems like the whole OpenDoc paradigm starts breaking down after you
  3250. >>get past the Graphic+MooV+Text+Spreadsheet model.
  3251. >
  3252. >Well, that covers all the basic types which other applications use too.
  3253. >
  3254. >Let's see: newsreader using a text part for composing messages, same with
  3255. >mail program; perhaps sometimes using a WWW part for displaying HTML
  3256. >documents, which then uses the text part and any necessary graphics parts
  3257. >again...
  3258.  
  3259. Having the "display HTML" part available would make any text editor closer
  3260. to a graphical HTML editor.  All the "Helper" apps would fold within
  3261. the document as well (but there isn't much gain here).  Sure make it 
  3262. easier to add the option-click on URL in Newswatcher though.
  3263.  
  3264. Also, having all the parts work within OpenDoc makes it easier to have a
  3265. central point that all such apps go to get user information. No more
  3266. constant filling out email/server names for each new net application that
  3267. is installed.  I know this could be done some other way -- but it seems it
  3268. would be simple in OpenDoc.  The OpenDoc method might allow two people to 
  3269. have open connects at the same time, something you can't do currently with
  3270. net packages. If someone else wants to read mail with Eudora on my 
  3271. machine, I have to quit Eudora so they can restart it with the proper settings
  3272. file.
  3273.  
  3274.  
  3275.  
  3276. +++++++++++++++++++++++++++
  3277.  
  3278. >From edcessna@netcom.com (Edward Cessna)
  3279. Date: Tue, 30 Aug 1994 12:54:59 -0700
  3280. Organization: Disney
  3281.  
  3282. >     An OpenDoc or OLE-based creation system for multimedia content
  3283. > would make sense, but that's an extension of the word processor metaphor.
  3284. >     The whole multi-source document concept is useful, but only for things
  3285. > that naturally have a document metaphor.
  3286.  
  3287. This also applies to client/server applications where the data being
  3288. retrieved from a database determines what the user sees on the screen.
  3289.  
  3290. > jdelkins@lilly.com (Joel D. Elkins) wrote:
  3291. > Aside...
  3292. >   Q: What is the difference between a "form" and a "document"?
  3293. >   A: A form only has 1 page, but document's have a lot!  :-)
  3294.  
  3295. There is a bigger difference between forms and documents: forms have a
  3296. rigid structure whereas documents do not. You can change the structure of
  3297. a document but *not* of a form (I wish I could change the structure of my
  3298. 1040 every April 15--sigh).
  3299.  
  3300. You could have a database query part that could be embedded within an
  3301. OpenDoc document. Editing the query part would mean change the query
  3302. statement defined within it. What you would see in the document would be
  3303. the results of the query. As for a database browser as an OpenDoc part, I
  3304. don't believe that this would yield anything meaningful (akin to putting
  3305. the finder in a OpenDoc document?). If anything, a database browser (a
  3306. database application) would end up being an OpenDoc container application.
  3307.  
  3308. When I use the term "database browser" I mean an application that could
  3309. visit the various data within a database, allow the user to select
  3310. something and, optionally, modify it. The user would also have the ability
  3311. to delete old information and to insert new information.
  3312.  
  3313. I'm not trying to imply that OpenDoc isn't useful to client/server
  3314. applications, I just do not see how the document-centered approach would
  3315. be practical. Other aspect of OpenDoc, like distributive objects, would be
  3316. very useful however.
  3317.  
  3318. -- Edward Cessna
  3319. -- Walt Disney Pictures and Television
  3320.  
  3321. +++++++++++++++++++++++++++
  3322.  
  3323. >From h+@nada.kth.se (Jon W{tte)
  3324. Date: Tue, 30 Aug 1994 22:29:13 +0200
  3325. Organization: Royal Institute of Something or other
  3326.  
  3327. In article <jdelkins-3008940939270001@m25567.d51.lilly.com>,
  3328. jdelkins@lilly.com (Joel D. Elkins) wrote:
  3329.  
  3330. >And what about client-server based apps, much in use by corporations today,
  3331. >for which the "document" paradigm really doesn't apply. Most of
  3332. >the c/s apps I've seen are more "forms" based. How will OpenDoc improve
  3333. >such apps? Unless it does, I don't see widespread acceptance by corporations
  3334. >for their in-house development efforts.
  3335.  
  3336. This is IDEAL for OpenDoc; you'd make forms as stationery of 
  3337. linked parts with AppleScript as the glue in the middle. 
  3338. Because you then can make a form of ANYTHING, you gain instant 
  3339. multimedia forms!
  3340.  
  3341. Cheers,
  3342.  
  3343.                     / h+
  3344.  
  3345.  
  3346. --
  3347.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  3348.  
  3349.   Reality exists only in your imagination.
  3350.  
  3351.  
  3352. +++++++++++++++++++++++++++
  3353.  
  3354. >From E.J. Draper <draper@utmdacc.mda.uth.tmc.edu>
  3355. Date: 30 Aug 1994 20:51:18 GMT
  3356. Organization: U.T.M.D. Anderson Cancer Center
  3357.  
  3358.  
  3359. >That's also a collection of an editor part, a news collection 
  3360. >part, ...
  3361.  
  3362. It seems that a great deal of the hype that surrounded AppleEvents before
  3363. the release of System 7 is being recycled in OpenDoc propaganda. 
  3364. Everyone heard that they were going to be able to use one spell check
  3365. program for all their needs.  They'd also use one graphics program, one
  3366. communications program, etc., etc..  Of course, all these programs were
  3367. going to communicate together to enrich the Macintosh experience and open
  3368. new profit channels for Apple and their developers.  So now we've got
  3369. shared libraries and the AppleEvent performance bottleneck is diminished.
  3370.  I'm still skeptical ...
  3371.  
  3372. >Your news reader comes with the SimpleText text edittig part. 
  3373. >Unfortunately, this part does not handle parts larger than 32k, 
  3374. >so to decode alt.binaries.pictures.erotica.jello, you instead 
  3375. >use the Alpha text editting part which handles larger 
  3376. >documents, and write a small script that scans the news 
  3377. >collection part for multi-part postings, uses Alpha to 
  3378. >concatenate them, uses the StuffIt mangling part to get an 
  3379. >image which you display in the JPEGView picture display part.
  3380.  
  3381. This solution would be inelegant, overly complex, neophyte hostile, and
  3382. slow.  What's so compelling about it?  
  3383.  
  3384.  
  3385. BTW- I did read the OpenDoc white paper.
  3386.  
  3387.  
  3388.       |E|J-  ED DRAPER
  3389.  rEpar|D|<-  Radiologic/Pathologic Institute
  3390.              The University of Texas M.D. Anderson Cancer Center
  3391.              draper@utmdacc.mda.uth.tmc.edu
  3392.  
  3393. +++++++++++++++++++++++++++
  3394.  
  3395. >From edcessna@netcom.com (Edward Cessna)
  3396. Date: Tue, 30 Aug 1994 14:21:56 -0700
  3397. Organization: Disney
  3398.  
  3399. In article <susser-3008941029470001@susser.apple.com>, susser@apple.com
  3400. (Joshua Susser) wrote:
  3401.  
  3402. > Actually, OpenDoc has a great story for in-house MIS types.  They have two
  3403. > big desires - being able to use COTS (Commercial Off The Shelf) Software,
  3404. > and getting a vertical solution for their special needs.  Notice these two
  3405. > desires are in direct conflict.  But with component technology like
  3406. > OpenDoc, you can buy a set of COTS part editors and maybe only have to
  3407. > write one or two special purpose ones in house.  Then create standard
  3408. > stationery using these chosen editors, write some scripts to integrate the
  3409. > parts functionality, and presto, it's an instant vertical application,
  3410. > custom made for your department with mostly COTS components.
  3411.  
  3412. Interesting concept. So, when the user double-clicks on the stationery, a
  3413. document will be created and they will be able to do their work. Question:
  3414. is the structure of the document fixed? In other words, could the user
  3415. accidentally delete or change one or more of the part editors? If the
  3416. answer is yes, then this is a totally wash-out for our in-house users! We
  3417. would spend more time helping the users and they would get annoyed at
  3418. being able to "destroy" the app.
  3419.  
  3420. > As for client-server, OpenDoc supports the concept of what we've been
  3421. > calling an "embedded client".  Create a part editor that can operate as a
  3422. > client for a remote server.
  3423.  
  3424. This would be great for our in-house developers but not our users!
  3425.  
  3426. > A good rule of thumb for what could and should be written as a part editor is:
  3427. > "If it has a user interface, it should be a part."
  3428.  
  3429. I wish it was so...
  3430.  
  3431. > Well, my compile is done, so back to work...
  3432.  
  3433. So quickly? I think I got another 10 minutes to go on my link--sigh.
  3434.  
  3435. -- Edward Cessna
  3436. -- Walt Disney Pictures and Television
  3437.  
  3438. +++++++++++++++++++++++++++
  3439.  
  3440. >From rmah@panix.com (Robert Mah)
  3441. Date: Tue, 30 Aug 1994 17:39:12 -0500
  3442. Organization: One Step Beyond
  3443.  
  3444. edcessna@netcom.com (Edward Cessna) wrote:
  3445.  
  3446. ) There is a bigger difference between forms and documents: forms have a
  3447. ) rigid structure whereas documents do not. You can change the structure of
  3448. ) a document but *not* of a form (I wish I could change the structure of my
  3449. ) 1040 every April 15--sigh).
  3450. ) You could have a database query part that could be embedded within an
  3451. ) OpenDoc document. Editing the query part would mean change the query
  3452. ) ...
  3453.  
  3454. I think you're putting too much emphasis on the term "document" here.
  3455. Nothing in OpenDoc says that the user _must_ be able to manipulate the
  3456. layout of the individual parts in a document/form.
  3457.  
  3458. That is dependent upon a piece of software called something like the 
  3459. "framework" or "layout" app.  You could easily, create a "forms" based 
  3460. part layout application that prevented the user from modifing the
  3461. underlying part layout/structure.
  3462.  
  3463. Cheers,
  3464. Rob
  3465. _____________________________________________________________________
  3466. Robert S. Mah           Software Development          +1.212.947.6507
  3467. One Step Beyond        and Network Consulting          rmah@panix.com
  3468.  
  3469. +++++++++++++++++++++++++++
  3470.  
  3471. >From afcjlloyd@aol.com (AFC JLloyd)
  3472. Date: 30 Aug 1994 17:40:02 -0400
  3473. Organization: America Online, Inc. (1-800-827-6364)
  3474.  
  3475. In article <33vusc$n5d@oac4.hsc.uth.tmc.edu>, E.J. Draper
  3476. <draper@utmdacc.mda.uth.tmc.edu> writes:
  3477.  
  3478. >>Actually, OpenDoc has a great story for in-house MIS types. 
  3479. >
  3480. >Wrong. Users who *do not* build *DOCUMENTS* will be annoyed at having to
  3481. >artificially create documents and incorporate parts just to get something
  3482. >done. The result of every human-machine interaction is *not* a document. 
  3483. >OpenDoc is an interesting and useful addition to the concept of building
  3484. >documents, but it's only interesting and useful in those terms.  
  3485.  
  3486. Perhaps the term "document" is misleading you.  If you grok
  3487. object-oriented programming, substitute the concept "object" for a while. 
  3488. In its most basic definition, an "object" is something that has state,
  3489. behavior, and identity (see Booch, Object Oriented Design).  A document,
  3490. while on disk, is simply state and identity.  When the document is opened,
  3491. OpenDoc dynamically binds the state to a part editor, which provides the
  3492. behavior.  A stationery document, by the way, is like a class -- a
  3493. template for instantiating objects with default state.
  3494.  
  3495. If you think in these more generic terms, I expect many of your objections
  3496. will disappear.  In all human-machine interaction, the machine is
  3497. displaying some visual representation for some state.  If you're concerned
  3498. that OpenDoc won't work for things like databases because the database
  3499. records can't be placed in Bento containers, then you just need to
  3500. consider that the state stored in the Bento containers might be simply a
  3501. "pointer" (or query, etc.) to where the data is actually stored.  This
  3502. results in "dynamically updated" objects -- the query doesn't change by
  3503. the answer does.  Document's like this will need to have a piece of state
  3504. that says how often the query should be repeated in order to keep the
  3505. displayed data up to date.
  3506.  
  3507. >OLE has been around for quite some time and what has the industry
  3508. >learned?  How many people are using OLE in mission critical applications
  3509. >every day?  How many people are out there screaming for OLE versions of
  3510. >Doom and Netware Client tools?
  3511.  
  3512. You're right.  No one is screaming for OLE or OpenDoc tools.  This doesn't
  3513. mean users won't very much appreciate (and ultimately demand) these kinds
  3514. of tools, once they are done right.  As I recall, most DOS users weren't
  3515. screaming for GUI's until well after Microsoft did their third iteration
  3516. of attempting to copy the Macintosh.  Users don't usually scream for a
  3517. solution, they just grumble about problems.  However, once they see a good
  3518. solution, they will generally scream if they aren't allowed to use the
  3519. solution.  This is even true of DOS users, they're just a bit slow ;-).
  3520.   
  3521. >
  3522. >>A good rule of thumb for what could and should be written as a part
  3523. >editor is:
  3524. >>"If it has a user interface, it should be a part."
  3525. >
  3526. >I vehemently disagree.
  3527.  
  3528. Not everything that has a user interface *should* be made into a part, but
  3529. just about anything with a UI *could* be made into a part, and doing so
  3530. would provide a lot of flexibility that currently doesn't exist.  As in
  3531. all engineering endeavors, one should do a costs/benefits analysis first.
  3532.  
  3533. Jim Lloyd
  3534. afcjlloyd@aol.com -or- Jim_Lloyd@powertalk.apple.com
  3535.  
  3536.  
  3537.  
  3538. +++++++++++++++++++++++++++
  3539.  
  3540. >From afcjlloyd@aol.com (AFC JLloyd)
  3541. Date: 30 Aug 1994 20:53:02 -0400
  3542. Organization: America Online, Inc. (1-800-827-6364)
  3543.  
  3544. In article <340646$o0q@oac4.hsc.uth.tmc.edu>, E.J. Draper
  3545. <draper@utmdacc.mda.uth.tmc.edu> writes:
  3546.  
  3547. >>That's also a collection of an editor part, a news collection 
  3548. >>part, ...
  3549. >
  3550. >It seems that a great deal of the hype that surrounded AppleEvents before
  3551. >the release of System 7 is being recycled in OpenDoc propaganda. 
  3552. >Everyone heard that they were going to be able to use one spell check
  3553. >program for all their needs.  They'd also use one graphics program, one
  3554. >communications program, etc., etc..  Of course, all these programs were
  3555. >going to communicate together to enrich the Macintosh experience and open
  3556. >new profit channels for Apple and their developers.  So now we've got
  3557. >shared libraries and the AppleEvent performance bottleneck is diminished.
  3558. > I'm still skeptical ...
  3559.  
  3560. When new technologies are introduced, the "vision" of the "visionaries"
  3561. who create the technology has to be communicated.  Visionaries aren't
  3562. perfect, they will often be wrong in the details, even if they are right
  3563. in the generalities.  So what if we don't yet have a universal spelling
  3564. checker?  It may still happen, and it may not.  AppleEvents has already
  3565. resulted in a lot of value, and is an enabling technology that will only
  3566. become more important over time.  If you feel bitter because of hype that
  3567. hasn't become true, I suggest you develop your ability to read between the
  3568. lines when presented with hype.
  3569.  
  3570. >>Your news reader comes with the SimpleText text edittig part. 
  3571. >>Unfortunately, this part does not handle parts larger than 32k, 
  3572. >>so to decode alt.binaries.pictures.erotica.jello, you instead 
  3573. >>use the Alpha text editting part which handles larger 
  3574. >>documents, and write a small script that scans the news 
  3575. >>collection part for multi-part postings, uses Alpha to 
  3576. >>concatenate them, uses the StuffIt mangling part to get an 
  3577. >>image which you display in the JPEGView picture display part.
  3578. >
  3579. >This solution would be inelegant, overly complex, neophyte hostile, and
  3580. >slow.  What's so compelling about it?  
  3581.  
  3582. I won't comment on something as subjective as "elegance".
  3583.  
  3584. The solution may be "complex", but a lot is happening.  If a specific
  3585. complex problem can be solved by breaking it down into subproblems that
  3586. can each be solved with off-the-shelf parts, then complexity is reduced,
  3587. not increased.
  3588.  
  3589. Requiring a neophyte to do the above from scratch would certainly be
  3590. hostile, but if you provide that neophyte with a previously prepared
  3591. stationery document, it should be no more hostile than a traditional
  3592. solution for this kind of application.
  3593.  
  3594. Finally, why should the above be slow?  Almost all of the computation is
  3595. I/O bound.  The slowest part of the implementation would be the execution
  3596. speed of the scripts, and this would be dominated by the I/O.
  3597.  
  3598. Jim Lloyd
  3599. afcjlloyd@aol.com -or- Jim_Lloyd@powertalk.apple.com
  3600.  
  3601.  
  3602. +++++++++++++++++++++++++++
  3603.  
  3604. >From gurgle@dnai.com (Pete Gontier)
  3605. Date: Tue, 30 Aug 1994 19:13:38 -0800
  3606. Organization: Integer Poet Software
  3607.  
  3608. In article <340646$o0q@oac4.hsc.uth.tmc.edu>, E.J. Draper
  3609. <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3610.  
  3611. > So now we've got shared libraries and the AppleEvent performance
  3612. > bottleneck is diminished. I'm still skeptical ...
  3613.  
  3614. Do you believe it's the case that AppleEvents and AppleScript haven't
  3615. happened according to the hype because of the performance overhead
  3616. associated with AppleEvents? If so, I urge you to figure out exactly how
  3617. to write an OSA-compliant app without attending a class at Apple DU. It
  3618. takes a long time, and that's if you're actually enthusiastic enough about
  3619. the ideas to try hard. It's not that the concepts are overly confusing;
  3620. the documentation simply isn't good. There are other problems (for example
  3621. the lack of compile-time type-checking when building AppleEvents and
  3622. Object Specifiers), but the problem is certainly not performance.
  3623.  
  3624. -- 
  3625.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  3626.  
  3627.  "Even during a particularly harsh (Colorado) winter... many of the
  3628.  300 families in the VCTV (movies-on-demand) trial continued to go
  3629.  to video stores." -- eis@murrow.tufts.edu, in Wired 2.09 p62
  3630.  
  3631. +++++++++++++++++++++++++++
  3632.  
  3633. >From Bruce@hoult.actrix.gen.nz (Bruce Hoult)
  3634. Date: Wed, 31 Aug 1994 13:18:42 +1200 (NZST)
  3635. Organization: (none)
  3636.  
  3637. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  3638. > >> > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  3639. > >> > The Next Generation".  Yes, you can do other stuff, but the touted
  3640. > How many times a day do you use Publish and Subscribe?  
  3641. > The one, and only, application I have for Publish and Subscribe
  3642. > technology is checking the amount of vacation hours I've got coming to me
  3643. > from the departmental spreadsheet.  I use it once a week at the most,
  3644. > probably more like once a month. 
  3645.  
  3646. You might not use publish&subscribe.  I know that, as a programmer, doing
  3647. programmer things, I don't.
  3648.  
  3649. But in the office I support, there is a huge structure of linked spreadsheets,
  3650. graphics documents and word processing documents, all linked together by
  3651. publish&subscribe.
  3652.  
  3653. Eventually, we'd like to have all this managed by a proper database system,
  3654. but for now Publish&subscribe is a huge improvement over the alternatives,
  3655. even if the performance does stink (especially in Excel).
  3656.  
  3657. -- Bruce
  3658.  
  3659. +++++++++++++++++++++++++++
  3660.  
  3661. >From scouten@uiuc.edu (Eric Scouten)
  3662. Date: Tue, 30 Aug 1994 23:49:14 -0500
  3663. Organization: University of Illinois
  3664.  
  3665. In article <edcessna-3008941421560001@153.7.11.4>, edcessna@netcom.com
  3666. (Edward Cessna) wrote:
  3667.  
  3668. > In article <susser-3008941029470001@susser.apple.com>, susser@apple.com
  3669. > (Joshua Susser) wrote:
  3670. > > Actually, OpenDoc has a great story for in-house MIS types.
  3671. > Interesting concept. So, when the user double-clicks on the stationery, a
  3672. > document will be created and they will be able to do their work. Question:
  3673. > is the structure of the document fixed? In other words, could the user
  3674. > accidentally delete or change one or more of the part editors? If the
  3675. > answer is yes, then this is a totally wash-out for our in-house users! We
  3676. > would spend more time helping the users and they would get annoyed at
  3677. > being able to "destroy" the app.
  3678.  
  3679. I believe in the OpenDoc white paper, there's a section on "access
  3680. control" that addresses just this issue. Can't remember exactly how it's
  3681. implemented, but I don't think the system is as naive as you have
  3682. suggested.
  3683.  
  3684. -Eric
  3685.  
  3686. __________________________________________________________________________
  3687. Eric Scouten <scouten@uiuc.edu> * MS Comp Sci, Univ of Illinois
  3688.  
  3689. The Pledge of Allegiance says, "liberty and justice for all."
  3690. Which part of "all" don't you understand?
  3691.    -Rep. Pat Schroeder
  3692.  
  3693. +++++++++++++++++++++++++++
  3694.  
  3695. >From quinlan@kits.sfu.ca (Brian Quinlan)
  3696. Date: 31 Aug 94 06:20:31 GMT
  3697. Organization: Simon Fraser University
  3698.  
  3699. nagle@netcom.com (John Nagle) writes:
  3700.  
  3701. >    The whole development environment shouldn't be a structured document,
  3702. >but source programs might be.  Programs today have parts which are visual
  3703. >and parts which are textual, and those parts need to be better connected.
  3704. >HyperCard already does this.
  3705.  
  3706. I'll have to disagree here. I would love to see my program as a flowchart,
  3707. object relation diagram or dataflow diagram. When I click on a box 
  3708. representing an object, method or function I would get an editor. It could
  3709. click on a line and get an interface editor. 
  3710.  
  3711. >    You could, but why would you want to embed those functions in a
  3712. >structured document?  A document is the wrong metaphor for that collection
  3713. >of functions.  There's no content in which you're embedding those
  3714. >functions.  A multiwindow application is more appropriate.
  3715.  
  3716. Your right, I was grasping at straws here. 
  3717.  
  3718. >    An OpenDoc or OLE-based creation system for multimedia content
  3719. >would make sense, but that's an extension of the word processor metaphor.
  3720.  
  3721. True, it is most easy to see the benifits for a word processor but
  3722. I think it would be helpful in other situations as well. I think that
  3723. for OpenDoc to be usefull you need to be working on some sort of document.
  3724. When programming you do use documents (rez, source, etc.) and you could
  3725. use OpenDoc to integrate these parts into a unified whole.
  3726.  
  3727. >    The whole multi-source document concept is useful, but only for things
  3728. >that naturally have a document metaphor.
  3729.  
  3730. I wish I had read this more carefully before making my last comment!
  3731.  
  3732.  
  3733. +++++++++++++++++++++++++++
  3734.  
  3735. >From hanrek@cts.com (Mark Hanrek)
  3736. Date: 31 Aug 1994 09:23:21 GMT
  3737. Organization: The Information Workshop
  3738.  
  3739. In article <gurgle-3008941913380001@gurgle.dnai.com>, gurgle@dnai.com
  3740. (Pete Gontier) wrote:
  3741.  
  3742. > Do you believe it's the case that AppleEvents and AppleScript haven't
  3743. > happened according to the hype because of the performance overhead
  3744. > associated with AppleEvents? If so, I urge you to figure out exactly how
  3745. > to write an OSA-compliant app without attending a class at Apple DU. It
  3746. > takes a long time, and that's if you're actually enthusiastic enough about
  3747. > the ideas to try hard. It's not that the concepts are overly confusing;
  3748. > the documentation simply isn't good. There are other problems (for example
  3749. > the lack of compile-time type-checking when building AppleEvents and
  3750. > Object Specifiers), but the problem is certainly not performance.
  3751.  
  3752.  
  3753. Pete,
  3754.  
  3755. I agree 100%, as someone who has spent a good deal of time with those subjects.
  3756.  
  3757. There is a "difficulty barrier" in assimilating the AE/AS technologies
  3758. which need not exist.  There could easily be certain materials and/or
  3759. utilities that would help make Apple events and related subjects easy to
  3760. deal with.
  3761.  
  3762. These technologies have now become "fundamental" and "required".
  3763.  
  3764. Hopefully Apple will be able to help turn this molasses back into water.
  3765.  
  3766. I get the feeling that it is just a matter of time until this boil will
  3767. need to be lanced.  
  3768.  
  3769.  
  3770. - ---- Visibility
  3771.  
  3772. I believe "visibility" is one leveraged key to success here.
  3773.  
  3774. If we had doohickies that showed Apple events moving around, allowed us to
  3775. examine them as AEGizmo-like things on screen, and had materials that made
  3776. clear the relationships between AppleScript statements, aete resources,
  3777. and object accessors, kinda thing, there'd likely be a lot more happening.
  3778.  
  3779. Extrapolating from the past, it will probably be some time before there
  3780. any new relief here from Apple. This topic could have been clarified years
  3781. ago.
  3782.  
  3783. If only we [the development community] had the ability to "turn up the
  3784. volume" with these technologies ourselves.
  3785.  
  3786.  
  3787. - ---- Interesting Alternative
  3788.  
  3789. One major event which has yet to happen is for the Macintosh Development
  3790. Community to organize itself, and consequently have for the first time the
  3791. realistic opportunity to "see to some of its own needs", drawn from its
  3792. own resources.
  3793.  
  3794. In many instances, it is not appropriate to expect that Apple is supposed
  3795. to provide a solution, or even to have an accurate perception of its
  3796. development community.  We accidentally think Apple should solve our
  3797. problems or understand us because we are generally powerless to do
  3798. anything beyond what our spare time will allow.
  3799.  
  3800. But the organized spare time of 10 programmers can accomplish some
  3801. significant things.  Or a seed planted by one programmer, and refined 10
  3802. times over.
  3803.  
  3804. Unfortunately, the event of us organizing ourselves won't likely be able
  3805. to occur until true electronic forums are available on the Internet. 
  3806. Forums provide the means of easily developing consensus, electing
  3807. leadership or an agenda, and facilitating collaboration, among other
  3808. essentials.
  3809.  
  3810. There's that "forum" word again.  Interesting, eh?
  3811.  
  3812. :) :) 
  3813.  
  3814. Mark "a-newsgroup-is-not-a-forum" Hanrek
  3815. The Information Workshop
  3816.  
  3817. +++++++++++++++++++++++++++
  3818.  
  3819. >From sw@network-analysis-ltd.co.uk (Sak Wathanasin)
  3820. Date: Wed, 31 Aug 94 09:57:57 BST
  3821. Organization: Network Analysis Ltd
  3822.  
  3823.  
  3824. In article <nagleCvCwzu.EF2@netcom.com> (comp.sys.mac.programmer), nagle@netcom.com (John Nagle) writes:
  3825. > >You could have a basis upon which you had a newsreader, email and ftp parts.
  3826. >     You could, but why would you want to embed those functions in a
  3827. > structured document?  A document is the wrong metaphor for that collection
  3828.  
  3829. I'd have thought it would be the other way round - the doucment would
  3830. be in the mail or news article. Or better, the mail message or news
  3831. article would be the document. That's the way it worked with Xerox
  3832. Viewpoint - when you got something in the mailbox, you opened it and
  3833. there would (sometimes) be a header part and the rest would be the
  3834. document. You didn't have to save an attachment or anything; it could
  3835. be dragged on to the desktop and operated on as a normal WP document.
  3836.  
  3837. Xerox VP had quite a few of the OpenDoc ideas implemented (although OD
  3838. goes much further, of course). Appl-centric and doc-centric objects can
  3839. co-exist quite happily. Or at least I didn't go around clutching my
  3840. head screaming "Oh, my God! Is that an appl or document object?" I just
  3841. double-clicked on it and went about my business...
  3842.  
  3843.  
  3844. Sak Wathanasin
  3845. Network Analysis Limited
  3846. 178 Wainbody Ave South, Coventry CV3 6BX, UK
  3847.  
  3848. Internet: sw@network-analysis-ltd.co.uk 
  3849. uucp:     ...!uknet!nan!sw                       AppleLink: NAN.LTD
  3850. Phone: (+44) 203 419996 Mobile:(+44) 850 587411  Fax: (+44) 203 690690
  3851.  
  3852. +++++++++++++++++++++++++++
  3853.  
  3854. >From h+@nada.kth.se (Jon W{tte)
  3855. Date: Wed, 31 Aug 1994 12:07:57 +0200
  3856. Organization: Royal Institute of Something or other
  3857.  
  3858. In article <edcessna-3008941421560001@153.7.11.4>,
  3859. edcessna@netcom.com (Edward Cessna) wrote:
  3860.  
  3861. >is the structure of the document fixed? In other words, could the user
  3862.  
  3863. Yes; you can lock the frames of parts in OpenDoc compound 
  3864. documents. This is in the white paper.
  3865.  
  3866. Cheers,
  3867.  
  3868.                 / h+
  3869.  
  3870.  
  3871. --
  3872.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  3873.  
  3874.   Reality exists only in your imagination.
  3875.  
  3876.  
  3877. +++++++++++++++++++++++++++
  3878.  
  3879. >From h+@nada.kth.se (Jon W{tte)
  3880. Date: Wed, 31 Aug 1994 12:07:59 +0200
  3881. Organization: Royal Institute of Something or other
  3882.  
  3883. In article <340646$o0q@oac4.hsc.uth.tmc.edu>,
  3884. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3885.  
  3886. >This solution would be inelegant, overly complex, neophyte hostile, and
  3887. >slow.  What's so compelling about it?  
  3888.  
  3889. The neophyte buys a pre-configured stationery/part editor 
  3890. bundle that behaves as an integrated whole.
  3891.  
  3892. The non-neophyte can go in and change whatever he wants in the 
  3893. bundle to make it fit his needs.
  3894.  
  3895. The information systems people in an organization can use 
  3896. off-the-shelf parts and their own custom glue to create needed 
  3897. applications.
  3898.  
  3899. Cheers,
  3900.  
  3901.                 / h+
  3902.  
  3903.  
  3904. --
  3905.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  3906.  
  3907.   Reality exists only in your imagination.
  3908.  
  3909.  
  3910. +++++++++++++++++++++++++++
  3911.  
  3912. >From philip@cs.wits.ac.za (Philip Machanick)
  3913. Date: 31 Aug 1994 13:05:05 GMT
  3914. Organization: Computer Science Dept, U of Witwatersrand
  3915.  
  3916. In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>, E.J. Draper
  3917. <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3918.  
  3919. > I can see some interesting applications of OpenDoc technology, but I
  3920. > certainly don't feel it's as mind-boggling awesome as the market-droids
  3921. > would have us think.  What's OpenDoc going to do for me?  Does a compiler
  3922. > part make sense?  How about news reader part?  An email part? A PIM part?
  3923.  
  3924. Compiler makes sense - but you are not trying to think of where the
  3925. "document" comes in. Look at something like CodeWarrior or ThinkC. Each
  3926. item in the project file is a part. You can open it to a window, you can
  3927. drag it around in the project. Cut, copy, paste are less obvious - maybe
  3928. there is use for these.
  3929.  
  3930. News reader the same thing. A newsreader consists of a number of documents
  3931. with different behaviours. If you don't use NewsWatcher you may not see
  3932. the possibilities. NewsWatcher has features like extract binhex, fetch ftp
  3933. from reference in article etc. Such things could be added as new
  3934. behaviours in a news document. On the other hand some web viewers allow
  3935. you to retrieve news articles. OpenDoc could make for much more seemless
  3936. integration of all these things. Imagine: a different part handler for
  3937. each kind of URL.
  3938.  
  3939. > A Resorcerer part?  How does OpenDoc improve the way that people work
  3940. > with information?  Does it make the computer more approachable to novice
  3941. > users?  What specific problem is it trying to solve?
  3942.  
  3943. It's trying to solve the problem of the monolith application. All these
  3944. people who are compaining that the Mac doesn't have proper protection etc.
  3945. are right, only they are too late. The application of today is bigger and
  3946. more complex than the operating system of the time when schedulers, paging
  3947. etc. were invented (VM goes back to the 1950s). What is needed now is a
  3948. way of putting together complex behaviour in smaller packages. Look up
  3949. Brad Cox's book on software ICs (I forget the title). OpenDoc is a
  3950. framework for plugging together software ICs - call it a software PCB. Not
  3951. that protection etc. should not be addressed - but _only_ adding
  3952. protection and pre-emption would give us a good 1970s OS without
  3953. addressing the monolithic app problem. With a good OS underneath it
  3954. OpenDoc could turn out to be a dinosaur killer.
  3955.  
  3956. The underlying idea is not new. The Xerox Star was programmed like this
  3957. and Apple has some of the people who were at Parc at the time pushing it
  3958. along.
  3959.  
  3960. > It seems like the whole OpenDoc paradigm starts breaking down after you
  3961. > get past the Graphic+MooV+Text+Spreadsheet model.
  3962.  
  3963. It breaks down when you can't conceive of what you are doing as
  3964. manipulating a document. The same thing was true of understanding why
  3965. windowed interfaces are better than command line interfaces. Some people
  3966. still don't get it :( but some of us are very happy programming in
  3967. windowed environments like CodeWarrior.
  3968. -- 
  3969. Philip Machanick                   philip@cs.wits.ac.za
  3970. Department of Computer Science, University of the Witwatersrand
  3971. 2050 Wits, South Africa        (at University of Cape Town 4 July-7 Nov)
  3972. phone 27(11)716-3309  fax 27(11)339-7965
  3973.  
  3974. +++++++++++++++++++++++++++
  3975.  
  3976. >From philip@cs.wits.ac.za (Philip Machanick)
  3977. Date: 31 Aug 1994 13:14:39 GMT
  3978. Organization: Computer Science Dept, U of Witwatersrand
  3979.  
  3980. In article <nagleCvC1vy.LGI@netcom.com>, nagle@netcom.com (John Nagle) wrote:
  3981. >       I think he has a point.  I can imagine a CAD system based on this
  3982. > approach, where you click on a subassembly to get to the detailed drawings.
  3983. > But that doesn't even fit the OpenDoc model, which is 2D, not 3D.
  3984. > What, besides embed stuff in word processor documents, is one really likely
  3985. > to do with OpenDoc?
  3986.  
  3987. Embed word processing in graphics documents :) In what sense are you
  3988. saying OpenDoc is 2D? It is based on frames which can have an arbitrary
  3989. shape so I suppose there is potentially a problem implementing a part
  3990. picker that is aware of depth. It is possible this could be layered on top
  3991. of the model of passing messages to contained parts. Maybe someone who has
  3992. gone further into detail could answer this.
  3993.  
  3994. >       By the way, how does OpenDoc do version management?
  3995.  
  3996. At some point in the history of a document you can start a new edition,
  3997. and go back to previous editions.
  3998.  
  3999. Since there is supposed to be support for cross-platform collaborative
  4000. editing, there ought to be more sophisticated features, but I have seen
  4001. nothing about this.
  4002.  
  4003. There are a lot of potential problems with OpenDoc but it is a real
  4004. attempt at rethinking the document-application relationship. I would like
  4005. to see how it develops. I'm less sure about all the weird infrastructure
  4006. it's being pinned onto though - a good simple kernel plus an
  4007. object-oriented language with better dynamic binding than C++ would have
  4008. been a better start.
  4009. -- 
  4010. Philip Machanick                   philip@cs.wits.ac.za
  4011. Department of Computer Science, University of the Witwatersrand
  4012. 2050 Wits, South Africa        (at University of Cape Town 4 July-7 Nov)
  4013. phone 27(11)716-3309  fax 27(11)339-7965
  4014.  
  4015. +++++++++++++++++++++++++++
  4016.  
  4017. >From lentz@rossi.astro.nwu.edu (Robert Lentz)
  4018. Date: 31 Aug 1994 14:40:12 GMT
  4019. Organization: Northwestern University, Evanston, Illinois, USA
  4020.  
  4021. In article <340k9e$mdv@search01.news.aol.com>,
  4022. AFC JLloyd <afcjlloyd@aol.com> wrote:
  4023. >...
  4024. >When new technologies are introduced, the "vision" of the "visionaries"
  4025. >who create the technology has to be communicated.  Visionaries aren't
  4026. >perfect, they will often be wrong in the details, even if they are right
  4027. >in the generalities.  So what if we don't yet have a universal spelling
  4028. >checker?  It may still happen, and it may not.  AppleEvents has already
  4029. >resulted in a lot of value, and is an enabling technology that will only
  4030. >become more important over time.  If you feel bitter because of hype that
  4031. >hasn't become true, I suggest you develop your ability to read between the
  4032. >lines when presented with hype.
  4033. >...
  4034.  
  4035. And complain to those developers that have not seen the light. Would it not
  4036. be nice to be able to ask Word to spell check a document for you? 
  4037.  
  4038. -Robert
  4039. -- 
  4040. lentz@rossi.astro.nwu.edu            http://www.astro.nwu.edu/lentz/plan.html
  4041.     "You have to push as hard as the age that pushes against you."
  4042.                     -Flannery O'Connor
  4043.  
  4044.  
  4045. +++++++++++++++++++++++++++
  4046.  
  4047. >From Jaeger@fquest.com (Brian Stern)
  4048. Date: 31 Aug 1994 15:24:32 GMT
  4049. Organization: The University of Texas at Austin, Austin, Texas
  4050.  
  4051. In article <hanrek-3108940225330001@auke.cts.com>, hanrek@cts.com (Mark
  4052. Hanrek) wrote:
  4053.  
  4054.  
  4055. < ------ Interesting Alternative
  4056. < One major event which has yet to happen is for the Macintosh Development
  4057. < Community to organize itself, and consequently have for the first time the
  4058. < realistic opportunity to "see to some of its own needs", drawn from its
  4059. < own resources.
  4060.  
  4061. You're right, we're not organized.
  4062.  
  4063. < In many instances, it is not appropriate to expect that Apple is supposed
  4064. < to provide a solution, or even to have an accurate perception of its
  4065. < development community.  We accidentally think Apple should solve our
  4066. < problems or understand us because we are generally powerless to do
  4067. < anything beyond what our spare time will allow.
  4068.  
  4069. Yes, Apple does what it wants, what it has resources to do, and what it
  4070. *thinks* we want.
  4071.  
  4072. < But the organized spare time of 10 programmers can accomplish some
  4073. < significant things.  Or a seed planted by one programmer, and refined 10
  4074. < times over.
  4075.  
  4076. Absoluteley.
  4077.  
  4078. < Unfortunately, the event of us organizing ourselves won't likely be able
  4079. < to occur until true electronic forums are available on the Internet. 
  4080. < Forums provide the means of easily developing consensus, electing
  4081. < leadership or an agenda, and facilitating collaboration, among other
  4082. < essentials.
  4083. < There's that "forum" word again.  Interesting, eh?
  4084.  
  4085. Here's where you lose me.  What does a forum have that a newsgroup doesn't
  4086. have?  Don't tell me archiving of every message because most of what's
  4087. posted here does not deserve to be saved for posterity.  If you want
  4088. something you have to ask for it.  And in a way that people understand
  4089. what it is that you're asking for.
  4090.  
  4091. I agree with you that the tools available and information available to us
  4092. are often inadequate.  Discussing that in this forum (sorry) is one way of
  4093. letting the tool/information providers know what we want.  If you want
  4094. something from the programming community this also a good place for
  4095. discussion of that.  My question is: What do you want?
  4096.  
  4097. < :) :) 
  4098. < Mark "a-newsgroup-is-not-a-forum" Hanrek
  4099. < The Information Workshop
  4100.  
  4101. -- 
  4102. Brian  Stern  :-{)}
  4103. Jaeger@fquest.com
  4104.  
  4105. +++++++++++++++++++++++++++
  4106.  
  4107. >From 103t_english@west.cscwc.pima.edu
  4108. Date: 31 Aug 94 15:29:30 MST
  4109. Organization: (none)
  4110.  
  4111. In article <Jaeger-3108941026460001@slip-1-36.ots.utexas.edu>, Jaeger@fquest.com (Brian Stern) writes:
  4112. > In article <hanrek-3108940225330001@auke.cts.com>, hanrek@cts.com (Mark
  4113. > Hanrek) wrote:
  4114. > < ------ Interesting Alternative
  4115. > < There's that "forum" word again.  Interesting, eh?
  4116. > < 
  4117.  
  4118. I think that Mark is hinting at a commercial project that he is working on, and
  4119. many of his posts, while they are valid, are simply an attempt to steer folks
  4120. to the conclusion that something remarkably similar to what he is planning on
  4121. marketing, is actually a good idea and that they would buy it.
  4122.  
  4123. I don't know if I am correct or not, but it feels this way to me.
  4124.  
  4125. Personally, I think it a REALLY GOOD marketing ploy if I am correct.
  4126.  
  4127. > Here's where you lose me.  What does a forum have that a newsgroup doesn't
  4128. > have?  Don't tell me archiving of every message because most of what's
  4129. > posted here does not deserve to be saved for posterity.  If you want
  4130. > something you have to ask for it.  And in a way that people understand
  4131. > what it is that you're asking for.
  4132. > I agree with you that the tools available and information available to us
  4133. > are often inadequate.  Discussing that in this forum (sorry) is one way of
  4134. > letting the tool/information providers know what we want.  If you want
  4135. > something from the programming community this also a good place for
  4136. > discussion of that.  My question is: What do you want?
  4137. > < :) :) 
  4138. > < 
  4139. > < Mark "a-newsgroup-is-not-a-forum" Hanrek
  4140. > < The Information Workshop
  4141. > -- 
  4142. > Brian  Stern  :-{)}
  4143. > Jaeger@fquest.com
  4144.  
  4145.  
  4146.  
  4147. Lawson
  4148.  
  4149. +++++++++++++++++++++++++++
  4150.  
  4151. >From nagle@netcom.com (John Nagle)
  4152. Date: Thu, 1 Sep 1994 05:14:15 GMT
  4153. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  4154.  
  4155. philip@cs.wits.ac.za (Philip Machanick) writes:
  4156. >It's trying to solve the problem of the monolith application. All these
  4157. >people who are compaining that the Mac doesn't have proper protection etc.
  4158. >are right, only they are too late. The application of today is bigger and
  4159. >more complex than the operating system of the time when schedulers, paging
  4160. >etc. were invented (VM goes back to the 1950s). What is needed now is a
  4161. >way of putting together complex behaviour in smaller packages. Look up
  4162. >Brad Cox's book on software ICs (I forget the title). OpenDoc is a
  4163. >framework for plugging together software ICs - call it a software PCB. Not
  4164. >that protection etc. should not be addressed - but _only_ adding
  4165. >protection and pre-emption would give us a good 1970s OS without
  4166. >addressing the monolithic app problem. With a good OS underneath it
  4167. >OpenDoc could turn out to be a dinosaur killer.
  4168.  
  4169.       PenPoint had the right idea on this.  It's worth looking at how
  4170. PenPoint worked internally.  Forget about the pen stuff (PenPoint was the
  4171. OS for the now-defunct EO, which failed mostly because a $4000 PDA was
  4172. too expensive); the document model in PenPoint looked good.  Like
  4173. OpenDoc, a document appeared as a number of areas on screen, with each
  4174. area maintained by a different application.  Unlike OpenDoc, each
  4175. application ran in a separate address space with full protection.
  4176. The notion of "application launch" was eliminated; as you scrolled through
  4177. a document, processes were created and terminated as required.
  4178.  
  4179.       PenPoint had no installed base with which they had to be compatible,
  4180. so they could use a much simpler architecture.  All PenPoint apps are
  4181. derived classes from base classes of the OS.  This makes apps much
  4182. smaller and simpler, and enforces standardization.  But it's not an
  4183. architecture you can retrofit.  
  4184.  
  4185.       The price we pay for backwards compatibility is seen in the
  4186. complexity of OLE and OpenDoc.
  4187.  
  4188.                     John Nagle
  4189.  
  4190. +++++++++++++++++++++++++++
  4191.  
  4192. >From h+@nada.kth.se (Jon W{tte)
  4193. Date: Thu, 01 Sep 1994 08:56:19 +0200
  4194. Organization: Royal Institute of Something or other
  4195.  
  4196. In article <3424oc$9ba@news.acns.nwu.edu>,
  4197. lentz@rossi.astro.nwu.edu (Robert Lentz) wrote:
  4198.  
  4199. >And complain to those developers that have not seen the light. Would it not
  4200. >be nice to be able to ask Word to spell check a document for you? 
  4201.  
  4202. No, because Word uses Houghton-Mifflin spell checking, which 
  4203. you can license yourself. Don't. Their Mac code would compile 
  4204. on a 1984 Mac, and that's it. It uses FSOpen(). It uses signed 
  4205. chars interchangeably with unsigned chars. Etc.
  4206.  
  4207. Their English dictionary is also nothing good unless you buy 
  4208. all the extra libraries.
  4209.  
  4210. Cheers,
  4211.  
  4212.                     / h+
  4213.  
  4214.  
  4215. --
  4216.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  4217.  
  4218.   Reality exists only in your imagination.
  4219.  
  4220.  
  4221. +++++++++++++++++++++++++++
  4222.  
  4223. >From philip@cs.uct.ac.za (Philip Machanick)
  4224. Date: 1 Sep 1994 10:08:40 +0200
  4225. Organization: Computer Science Department, University of Cape Town
  4226.  
  4227. Just curious.
  4228.  
  4229. I wonder how many of the people saying OpenDoc is no good - AAARGH NO!
  4230. IT'S CONFIGURABLE - THE USERS WILL BREAK IT - are the same ones who
  4231. used to run down the Mac because it isn't configurable like X.
  4232.  
  4233. I must say though I can have some empathy with this fear having
  4234. wasted large chunks of time trying to make X usable every time I
  4235. move to a new place.
  4236. --
  4237. Philip Machanick                      philip@cs.wits.ac.za
  4238. Computer Science Department, University of he Witwatesrand
  4239. 2050 Wits, South Africa 27(11)716-3309 fax 339-7965
  4240. (at University of Cape Town until November: 27(21)650-4058)
  4241.  
  4242. +++++++++++++++++++++++++++
  4243.  
  4244. >From h+@nada.kth.se (Jon W{tte)
  4245. Date: Thu, 01 Sep 1994 14:55:18 +0200
  4246. Organization: Royal Institute of Something or other
  4247.  
  4248. In article <nagleCvFqJs.A2x@netcom.com>,
  4249. nagle@netcom.com (John Nagle) wrote:
  4250.  
  4251. >      The price we pay for backwards compatibility is seen in the
  4252. >complexity of OLE and OpenDoc.
  4253.  
  4254. Guess what? In OpenDoc, all applications are subclasses of a 
  4255. system class, ODPart to be exact, and all storage is subclasses 
  4256. of ODStorageUnit (or whatever) etc. OpenDoc also requires total 
  4257. rewrite of everything; it's NOT designed to be backwards 
  4258. compatible (which OLE is, to some degree)
  4259.  
  4260. However, you're confusing the issues of an application runtime 
  4261. architecture with the issues of various OS support. There's no 
  4262. reason why OpenDoc parts cannot live in separate protected 
  4263. address spaces.
  4264.  
  4265. Cheers,
  4266.  
  4267.                 / h+
  4268.  
  4269.  
  4270. --
  4271.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  4272.  
  4273.   Reality exists only in your imagination.
  4274.  
  4275.  
  4276. +++++++++++++++++++++++++++
  4277.  
  4278. >From nagle@netcom.com (John Nagle)
  4279. Date: Thu, 1 Sep 1994 16:26:12 GMT
  4280. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  4281.  
  4282. >In article <hanrek-3108940225330001@auke.cts.com>, hanrek@cts.com (Mark
  4283. >Hanrek) wrote:
  4284. >< In many instances, it is not appropriate to expect that Apple is supposed
  4285. >< to provide a solution, or even to have an accurate perception of its
  4286. >< development community.  We accidentally think Apple should solve our
  4287. >< problems or understand us because we are generally powerless to do
  4288. >< anything beyond what our spare time will allow.
  4289.  
  4290. >Yes, Apple does what it wants, what it has resources to do, and what it
  4291. >*thinks* we want.
  4292.  
  4293.        Apple needs to realize that 1) the development tools for the
  4294. Macintosh are now inferior to those for Windows, and 2) this is Apple's
  4295. problem, whether Apple likes it or not.
  4296.  
  4297.                     John Nagle
  4298.  
  4299. +++++++++++++++++++++++++++
  4300.  
  4301. >From jonpugh@netcom.com (Jon Pugh)
  4302. Date: Thu, 1 Sep 1994 21:50:31 GMT
  4303. Organization: Will hack for food
  4304.  
  4305. John Nagle (nagle@netcom.com) wrote:
  4306.  
  4307. >        Apple needs to realize that 1) the development tools for the
  4308. > Macintosh are now inferior to those for Windows, and 2) this is Apple's
  4309. > problem, whether Apple likes it or not.
  4310.  
  4311. This is off the thread, but I just wanted to refute this statement.  We 
  4312. have just gone from all Mac development to doing some Windows development
  4313. too.  We had heard this line for some time but it does not jibe with our
  4314. experience.  We have yet to find a single tool that operates as nicely as
  4315. THINK, CW _or_ MPW.  Sure, some are faster, some have cool features, but
  4316. nothing works as well or as integrated.  Just trying to write some scripts
  4317. to mimic some of our MPW Projector scripts was a nightmare!
  4318.  
  4319. All in all, we should start a different thread and argue about this some
  4320. more.  Macintosh development tools are damn nice compared to the mess on
  4321. Windows.
  4322.  
  4323. Jon
  4324.  
  4325.  
  4326. +++++++++++++++++++++++++++
  4327.  
  4328. >From bobd@zaphod.UUCP (Bob Dalgleish)
  4329. Date: 2 Sep 94 16:12:19 GMT
  4330. Organization: Develcon Electronics Ltd., Saskatoon, SK, Canada
  4331.  
  4332. In article <susser-3008941029470001@susser.apple.com> susser@apple.com (Joshua Susser) writes:
  4333. >nagle@netcom.com (John Nagle) wrote:
  4334. >> E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  4335. >> >It seems like the whole OpenDoc paradigm starts breaking down after you
  4336. >> >get past the Graphic+MooV+Text+Spreadsheet model.
  4337. >> 
  4338. >>       I think he has a point.  I can imagine a CAD system based on this
  4339. >> approach, where you click on a subassembly to get to the detailed drawings.
  4340. >> But that doesn't even fit the OpenDoc model, which is 2D, not 3D.
  4341. >> What, besides embed stuff in word processor documents, is one really likely
  4342. >> to do with OpenDoc?
  4343. >
  4344. >OpenDoc windows and layout objects are 2D, because that's the
  4345. >dimensionality of the imaging devices available today (for the most
  4346. >part).  But we did leave enough room in the API to support 3D parts.  It
  4347. >should in fact be possible to embed a text part onto the surface of a 3D
  4348. >sphere part.
  4349. >
  4350. >But even without 3D, OpenDoc is suitable for much more than just a
  4351. >"Graphic+MooV+Text+Spreadsheet" kind of document.  See below.
  4352.  
  4353. I started to have a vision.  Having followed this thread for awhile, and
  4354. read through the WWDC documentation, installed BBEdit 3.0, Symantec C 7,
  4355. and MW CW, purchased and installed a *very expensive* CASE system, and
  4356. still being faced with elementary problems of envisioning software, I
  4357. started to see a trend.
  4358.  
  4359. Software project forms a document (in SC7, this is a project file), to
  4360. which are attached source files, object files, library files, resource
  4361. files, resource source files, and pretty much anything you want.  The
  4362. TPM uses the file suffix to assign a "part editor" to each type of file,
  4363. and "does the right thing" at the right time.  How does this differ from
  4364. an OpenDoc document with part editors for distinct parts, and a document
  4365. "application" co-ordinating the make process?
  4366.  
  4367. Even though we think of source code as a text file, we, in fact, treat
  4368. it as a specialized database of relationships.  Witness PopUpFuncs,
  4369. CMaster, ObjectMaster, and other extensions to the basic set of text
  4370. manipulation tools.  Someone else has suggested "Could I not see my
  4371. source code as a flow-chart, data-flow chart, decision table, coverage
  4372. checklist?"
  4373.  
  4374. The model we already use for software development is that of an OpenDoc
  4375. architecture with only three providers and some hangers-on.  A true
  4376. OpenDoc document for a development project would have resource editors,
  4377. text editors, compilers, graphers, analyzers, etc., as part editors that
  4378. could be applied at any time for any purpose that the devious minds of
  4379. developers can come up with.
  4380. >>       By the way, how does OpenDoc do version management?
  4381. >
  4382. >OpenDoc documents provide a facility for creating a named revision of your
  4383. >document called a "draft".  Each draft is basically a checkpoint of the
  4384. >state of the document.  You can create a new draft at any time, have as
  4385. >many as you like, open old drafts to compare to newer, etc.  There's
  4386. >lots more about drafts, but you can read the documentation for that.
  4387.  
  4388. This is much more sophisticated than Projector or SourceServer or RCS.
  4389. As long as there was a way to get drafts of parts, most programmers
  4390. would be happy to work in such a world.
  4391.  
  4392. Any programmer will tell you that comments don't cut it as for
  4393. keeping sufficient information to maintain software, but it is the
  4394. only tool available.   New part editors, and ways to co-ordinate them
  4395. may be just the way to do it.
  4396.  
  4397. Okay, who's up for writing an OpenDoc document to replace Think C and
  4398. CodeWarrior?
  4399. -- 
  4400. -- * * * CFV: net.short.signatures * * *--
  4401. Bob Dalgleish     zaphod!bobd@tribune.usask.ca     CompuServe: 70521,2011
  4402.  
  4403. +++++++++++++++++++++++++++
  4404.  
  4405. >From will@cs.su.oz.au (William Uther)
  4406. Date: 3 Sep 1994 10:36:00 +1000
  4407. Organization: Basser Dept of Computer Sciece, Uni of Sydney, Australia
  4408.  
  4409. In article <5865@zaphod.uucp>, Bob Dalgleish <bobd@zaphod.UUCP> wrote:
  4410. >In article <susser-3008941029470001@susser.apple.com> susser@apple.com (Joshua Susser) writes:
  4411.  
  4412. [snip]
  4413.  
  4414. >>But even without 3D, OpenDoc is suitable for much more than just a
  4415. >>"Graphic+MooV+Text+Spreadsheet" kind of document.  See below.
  4416. >
  4417. >I started to have a vision.  Having followed this thread for awhile, and
  4418. >read through the WWDC documentation, installed BBEdit 3.0, Symantec C 7,
  4419. >and MW CW, purchased and installed a *very expensive* CASE system, and
  4420. >still being faced with elementary problems of envisioning software, I
  4421. >started to see a trend.
  4422.  
  4423. [snip]
  4424.  
  4425. >Even though we think of source code as a text file, we, in fact, treat
  4426. >it as a specialized database of relationships.  Witness PopUpFuncs,
  4427. >CMaster, ObjectMaster, and other extensions to the basic set of text
  4428. >manipulation tools.  Someone else has suggested "Could I not see my
  4429. >source code as a flow-chart, data-flow chart, decision table, coverage
  4430. >checklist?"
  4431.  
  4432. [snip]
  4433.  
  4434. >Okay, who's up for writing an OpenDoc document to replace Think C and
  4435. >CodeWarrior?
  4436.  
  4437. This sounds very like the Gwydion project CMU are working on (with Apple?).
  4438.  
  4439. The WWW page URL is:
  4440. http://legend.gwydion.cs.cmu.edu:8001/gwydion/
  4441.  
  4442. They are working on a development environment for Dylan (aka BHS) which
  4443. includes being able view your code as hypertext.  They mention version control
  4444. where you can lock functional parts on the program - e.g. if you were changing
  4445. the interface to a function you could lock "this function and all functions
  4446. that reference it".  Anyway, have a look the WWW page for more info.
  4447.  
  4448. \x/ill      :-}
  4449.  
  4450.  
  4451. +++++++++++++++++++++++++++
  4452.  
  4453. >From deanp@zikzak.apana.org.au (Dean Perry)
  4454. Date: 8 Sep 1994 04:45:11 GMT
  4455. Organization: Zikzak public access UNIX, Melbourne Australia
  4456.  
  4457. eric larson (eric.larson@f620.n2605.z1.fidonet.org) wrote:
  4458. :  >      A more fundamental problem is that all this machinery exists mostly
  4459. :  > so you can embed different documents in your word processor and still
  4460. :  > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  4461. :  > The Next Generation".  Yes, you can do other stuff, but the touted
  4462. :  > advantage is mostly for integrated documents.  It's all focused on
  4463. :  > what documents look like, not what they mean.  Is that really worth all
  4464. :  > this complexity?
  4465.  
  4466. : One concern I have about this technology is what it is going to do to document
  4467. : portability.
  4468.  
  4469. Like what do you do when you don't have all the parts to view 
  4470. something... I guess this will come about along the lines of what happens 
  4471. if you have a QuickTime clip in a document on a machine without it 
  4472. installed - you get a dead placeholder that may or may not represent the 
  4473. content.  The whole idea of *distributed* parts freaks me a little - what 
  4474. do you do when your document relies on net connections to multiple remote 
  4475. servers and the net goes away?
  4476.  
  4477. dean
  4478. --
  4479.         Zikzak public access UNIX, Melbourne, Australia.
  4480.  
  4481. +++++++++++++++++++++++++++
  4482.  
  4483. >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
  4484. Date: Thu, 08 Sep 1994 17:50:17 +0800
  4485. Organization: Department of Computer Science, The University of Western Australia
  4486.  
  4487. In article <nagleCvB8zv.M3K@netcom.com>, nagle@netcom.com (John Nagle) wrote:
  4488.  
  4489. >      Or long-term document integrity.  Will you still be able to read
  4490. >your document a few years downstream, after all the applications have
  4491. >changed?  And if you can't, which vendor do you call for help?
  4492.  
  4493. I don't think this will be a problem.  Unless there are nasty bugs in the
  4494. part handlers, OpenDoc should still be able to open the document, even if
  4495. you can't edit (or even view) it.  You'll be able to rip it apart and try
  4496. to find out which part handler is having the bad day.
  4497.  
  4498. Alternatively it's likely that sooner or later, someone will build
  4499. 'ResEdit for Bento', an application that lets you tear OpenDoc documents
  4500. apart at a low level.  This means you'll be able to break any document up
  4501. into its component parts and hence edit them that way.
  4502.  
  4503. Let's face it, you face exactly the same problem today with non-compound
  4504. documents.  If WidgetWorks Inc goes down the tubes and, 3 years later,
  4505. WidgetWorks fails to run under Gerschwin, well you're screwed, aren't you?
  4506.  
  4507. Share and Enjoy.
  4508. -- 
  4509. Quinn "The Eskimo!"        "Scout in a can. Simple, cheap, easy
  4510.                             to use and it's expendable!"
  4511.  
  4512. +++++++++++++++++++++++++++
  4513.  
  4514. >From gurgle@dnai.com (Pete Gontier)
  4515. Date: Thu, 08 Sep 1994 09:40:32 -0800
  4516. Organization: Integer Poet Software
  4517.  
  4518. In article <34m4t5$k9p@lazar.apana.org.au>, deanp@zikzak.apana.org.au
  4519. (Dean Perry) wrote:
  4520.  
  4521. > : One concern I have about this technology is what it is going to do to
  4522. > : document portability.
  4523. > Like what do you do when you don't have all the parts to view 
  4524. > something... I guess this will come about along the lines of what happens 
  4525. > if you have a QuickTime clip in a document on a machine without it 
  4526. > installed - you get a dead placeholder that may or may not represent the 
  4527. > content.
  4528.  
  4529. Good answer. Gold star. :-) However, this is not a complete solution.
  4530.  
  4531. We all know what happens when an app fails to save font names in its
  4532. documents as opposed to font numbers. The font numbers will work as long
  4533. as (1) the doc stays on one machine, and (2) the user doesn't mess with
  4534. hir Fonts folder. Deprive the document of either one of those conditions,
  4535. though, and the page layout goes straight in the toilet, even if you're
  4536. able to find a similar font and apply it through some kind of global style
  4537. mechanism (because presumably there are too many changes to make
  4538. manually).
  4539.  
  4540. Now imagine what's missing is not just a font but a program. Presumably
  4541. the program is a bit more complex than a font. Don't get me wrong; it
  4542. might be as clean as a QuickTime PICT. But we can't really guess what
  4543. unfortunate portability issues will appear until they do appear, because
  4544. nobody has done this before.
  4545.  
  4546. > The whole idea of *distributed* parts freaks me a little - what 
  4547. > do you do when your document relies on net connections to multiple remote 
  4548. > servers and the net goes away?
  4549.  
  4550. It doesn't strike me that this is any worse than a part editor which is
  4551. missing when the doc is opened. One important difference is that the app
  4552. shell might be able to take a snap shot of the part's screen
  4553. representation before the part editor goes away.
  4554.  
  4555. -- 
  4556.  
  4557.  Pete Gontier // impudent ass // gurgle@dnai.com
  4558.  
  4559.  "The need to be (or appear to be) sophisticated pervades the very
  4560.  atmosphere in which we, the Magazine Reading Class, move."
  4561.                   -- Ellis Weiner, Spy Magazine, 9/94
  4562.  
  4563. +++++++++++++++++++++++++++
  4564.  
  4565. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  4566. Date: Thu, 8 Sep 1994 18:40:11 GMT
  4567. Organization: Apple Computer
  4568.  
  4569. Dean Perry, deanp@zikzak.apana.org.au writes:
  4570. > : One concern I have about this technology is what it is going to do to
  4571. document
  4572. > : portability.
  4573. > Like what do you do when you don't have all the parts to view 
  4574. > something...
  4575.  
  4576. There are three levels of support for this:
  4577. * If you don't have the preferred editor for that part, but have another
  4578. editor that can edit one or more of the content types saved for that part,
  4579. that editor will be used. (Note that an editor can save a part in multiple
  4580. representations, kind of like writing to the Clipboard or drag mgr today.)
  4581. * If that fails, but there is a translator available that knows how to
  4582. translate one of the part's formats into something one of your available
  4583. editors can read, the translator will be used. (On the Mac, this uses the
  4584. translation system from Mac Easy Open. Other platforms will implement it
  4585. differently.)
  4586. * If all else fails, the part will display as a gray box that displays its
  4587. content type(s). Note that the document will still open, and all other parts
  4588. for which an editor could be found will appear.
  4589.  
  4590. Someone else mentioned a "Bento ResEdit" ... someone (not at Apple) has
  4591. written a tool like that. I'm not sure whether they're going to finish the
  4592. implementation or distribute it more widely. It'd be quite useful.
  4593.  
  4594. --Jens Alfke                           jens_alfke@powertalk.apple.com
  4595.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  4596.  
  4597. +++++++++++++++++++++++++++
  4598.  
  4599. >From h+@nada.kth.se (Jon W{tte)
  4600. Date: Fri, 09 Sep 1994 10:07:24 +0200
  4601. Organization: Royal Institute of Something or other
  4602.  
  4603. In article <34m4t5$k9p@lazar.apana.org.au>,
  4604. deanp@zikzak.apana.org.au (Dean Perry) wrote:
  4605.  
  4606. >Like what do you do when you don't have all the parts to view 
  4607. >something...
  4608.  
  4609. Part Viewers are encouraged to be free, while the editors would 
  4610. cost money.
  4611.  
  4612. Also, a Part Editor is encouraged to store its info in one or 
  4613. more standard formats (i e PICT) as well as its own format, so 
  4614. you can use the "SimpleText" part to view but not edit it.
  4615.  
  4616. >content.  The whole idea of *distributed* parts freaks me a little - what 
  4617. >do you do when your document relies on net connections to multiple remote 
  4618. >servers and the net goes away?
  4619.  
  4620. What do you do when the power goes out? Oh, it doesn't go out 
  4621. often, but it happens, right? Networks will have about the same 
  4622. reliability. (And aside from having an UPS, I now am looking 
  4623. for a V.24 adapter for my digital cellular phone :-)
  4624.  
  4625. Cheers,
  4626.  
  4627.                 / h+
  4628.  
  4629.  
  4630. --
  4631.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  4632.    This is the kind of totally-gross-out-sick stuff you can do with C++ that
  4633.    makes the language kind of neat.
  4634.                                             -- Keith Rollin
  4635.  
  4636.  
  4637. +++++++++++++++++++++++++++
  4638.  
  4639. >From nagle@netcom.com (John Nagle)
  4640. Date: Fri, 9 Sep 1994 16:36:15 GMT
  4641. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  4642.  
  4643. gurgle@dnai.com (Pete Gontier) writes:
  4644. >In article <34m4t5$k9p@lazar.apana.org.au>, deanp@zikzak.apana.org.au
  4645. >(Dean Perry) wrote:
  4646. >> : One concern I have about this technology is what it is going to do to
  4647. >> : document portability.
  4648. >> 
  4649. >> Like what do you do when you don't have all the parts to view 
  4650. >> something... 
  4651. >We all know what happens when an app fails to save font names in its
  4652. >documents as opposed to font numbers. ...
  4653. >Now imagine what's missing is not just a font but a program. ...
  4654.  
  4655.      Yeah.  Supposedly the plan for OpenDoc is that a PICT representation
  4656. of the object is carried with the document, so it can be viewed without
  4657. the appropriate editor.
  4658.  
  4659.      One implication is that even simple documents will be big.  A more
  4660. subtle implication is that document editability may invisibly degrade over
  4661. time as the underlying applications change.  The document may look just
  4662. fine until you try to do something to it.
  4663.  
  4664.                     John Nagle
  4665.  
  4666. +++++++++++++++++++++++++++
  4667.  
  4668. >From jonpugh@netcom.com (Jon Pugh)
  4669. Date: Tue, 13 Sep 1994 22:57:58 GMT
  4670. Organization: Will hack for food
  4671.  
  4672. John Nagle (nagle@netcom.com) wrote:
  4673.  
  4674. >      Yeah.  Supposedly the plan for OpenDoc is that a PICT representation
  4675. > of the object is carried with the document, so it can be viewed without
  4676. > the appropriate editor.
  4677.  
  4678. >      One implication is that even simple documents will be big.  A more
  4679. > subtle implication is that document editability may invisibly degrade over
  4680. > time as the underlying applications change.  The document may look just
  4681. > fine until you try to do something to it.
  4682.  
  4683. These are all concerns relating to OLE also.  In fact, Microsoft advocates
  4684. OLE as a superior technology because it includes a picture along with the
  4685. data whereas OpenDoc does not (according to this MicroSoft OLE comparison
  4686. paper I've been reading).  My favorite part is where they claim that because
  4687. the picture is included, the document may be printed without the editor
  4688. being involved.  They seem to have missed the whole resolution issue.
  4689.  
  4690. Personally, I like the OpenDoc approach better.  It takes a more functional
  4691. attitude, where parts can work the way they want instead of the way the
  4692. container wants, which is the OLE approach.  This paper says that OLE can do
  4693. OpenDoc's in place activation (normal OLE parts are inactive until clicked)
  4694. if the container app wants to.  It doesn't mention that no OLE apps want to. 
  4695. I can see why.  If you activate an Excel graph in Word when it scrolls onto
  4696. the screen, you need to launch Excel.  That's a nontrivial operation.  The
  4697. real question is, will you be able to init all your parts fast enough.  The
  4698. OLE folks don't think so, which is why they advocate static pictures, no 
  4699. implicit activation and printing from the pictures.
  4700.  
  4701. Jon
  4702.  
  4703. +++++++++++++++++++++++++++
  4704.  
  4705. >From philip@cs.wits.ac.za (Philip Machanick)
  4706. Date: 14 Sep 1994 07:07:06 GMT
  4707. Organization: Computer Science Dept, U of Witwatersrand
  4708.  
  4709. In article <jonpughCw3BsM.Bnz@netcom.com>, jonpugh@netcom.com (Jon Pugh) wrote:
  4710.  
  4711. > Personally, I like the OpenDoc approach better.  It takes a more functional
  4712. > attitude, where parts can work the way they want instead of the way the
  4713. > container wants, which is the OLE approach.  This paper says that OLE can do
  4714. > OpenDoc's in place activation (normal OLE parts are inactive until clicked)
  4715. > if the container app wants to.  It doesn't mention that no OLE apps want to. 
  4716. > I can see why.  If you activate an Excel graph in Word when it scrolls onto
  4717. > the screen, you need to launch Excel.  That's a nontrivial operation.  The
  4718. > real question is, will you be able to init all your parts fast enough.  The
  4719. > OLE folks don't think so, which is why they advocate static pictures, no 
  4720. > implicit activation and printing from the pictures.
  4721.  
  4722. The OLE people think this way because they are trying to move dinosaurs
  4723. around with a fly whisk. OpenDoc breaks apps down into more manageable
  4724. chunks - or at least will if programmers use it the way it was intended.
  4725. Launching a spreadsheet part (viewer not editor is the minimum needed)
  4726. handler should be a much more lightweight operation than launching Excel.
  4727.  
  4728. Another strategy would be to make resolution in a more general sense the
  4729. deciding factor on whether you need a part handler - to print to higher
  4730. resolution device, to open the object to edit it, to display it on a
  4731. screen with more colours etc.
  4732. -- 
  4733. Philip Machanick                   philip@cs.wits.ac.za
  4734. Department of Computer Science, University of the Witwatersrand
  4735. 2050 Wits, South Africa        (at University of Cape Town 4 July-7 Nov)
  4736. phone 27(11)716-3309  fax 27(11)339-7965
  4737.  
  4738. ---------------------------
  4739.  
  4740. >From alain@cs.uchicago.edu (Alain Aslag Roy)
  4741. Subject: Linking with QuickTime.xcoff for the power pc
  4742. Date: Tue, 13 Sep 1994 03:44:44 GMT
  4743. Organization: It lurks in the night.
  4744.  
  4745. I've been working on an application that uses QuickTime 2.0 on the power 
  4746. macintosh. I figured out how to link with the Import library for quicktime
  4747. (I got it from the Beta CD) and it works fine. Until I launch the program
  4748. in a low memory situation. Then I get a message about not being able to 
  4749. find the QuickTime Libary or something like that. If I free up some memory,
  4750. I don't have that problem.
  4751.  
  4752. Now, I'd really like it if I could handle this error on my own instead of the
  4753. system handling it for me. My program doesn't require QuickTime, but can use
  4754. it if it's there. Is there a way for me to prevent the system from reporting
  4755. this error and for me to handle it myself?
  4756.  
  4757. I'm using MPW with PPCC (The RISC SDK), the most recent version, if that 
  4758. matters.
  4759.  
  4760. Thanks in advance for any advice.
  4761.  
  4762. -alain
  4763.  
  4764. +++++++++++++++++++++++++++
  4765.  
  4766. >From zstern@adobe.com (Zalman Stern)
  4767. Date: Tue, 13 Sep 1994 20:58:20 GMT
  4768. Organization: Adobe Systems Incorporated
  4769.  
  4770. Alain Aslag Roy writes
  4771. [Program fails to launch when QuickTime library cannot be loaded, say for  
  4772. low memory reasons, or because it is not isntalled.]
  4773. > Now, I'd really like it if I could handle this error on my own instead of  
  4774. the
  4775. > system handling it for me.
  4776. > I'm using MPW with PPCC (The RISC SDK), the most recent version, if that 
  4777. > matters.
  4778.  
  4779. You want to make the linkage of the library "weak". This is done by adding a  
  4780. tilde after the library name in the argument to the makepef command. Like  
  4781. so:
  4782.     makepef <...> -l QuickTimeLib.xcoff=QuickTimeLib~
  4783.  
  4784. Figuring out if the library is actually there or not is another story. In  
  4785. theory there is a gestalt selector to do this, but it doesn't work. Instead  
  4786. you should test if a routine you use from the QuickTime library is NULL or  
  4787. not. The whole mass of code I put in to MacApp to deal with this looks like  
  4788. so:
  4789.  
  4790. /* Start with the Gestalt in as for a 68k. */
  4791.     theConfiguration.hasCompressionManager = Gestalt (gestaltCompressionMgr,  
  4792. response) == noErr;
  4793.  
  4794. /* For PowerPC make sure we can actually call QuickTime if its there...
  4795.  * This piece of code is incredibly screwed up because we link to QuickTime
  4796.  * weakly. Meaning that if the library is not there, undefined externals
  4797.  * referencing that library do not keep us from running. However, there
  4798.  * seems to be a case where the library is there, but cannot be loaded due
  4799.  * to a lack of memory. In this case, the gestalt call says its there, but
  4800.  * the routines we call are still NULL. So what the hell, I just check one
  4801.  * of the routines that is supposed to be in that library.
  4802.  */
  4803. #ifdef __powerc
  4804.     theConfiguration.hasCompressionManager =
  4805.     (theConfiguration.hasCompressionManager &&
  4806.         (Gestalt(gestaltQuickTimeFeatures, response) == noErr) &&
  4807.         (response & (1 << gestaltPPCQuickTimeLibPresent)) &&
  4808.         &CustomGetFilePreview != NULL);
  4809. #endif
  4810. --
  4811. Zalman Stern           zalman@adobe.com            (415) 962 3824
  4812. Adobe Systems, 1585 Charleston Rd., POB 7900, Mountain View, CA 94039-7900
  4813.  Please do not change color while I am talking to you -- MC 900 Ft Jesus.
  4814.  
  4815. ---------------------------
  4816.  
  4817. >From gmcgath@condes.mv.com (Gary McGath)
  4818. Subject: Multiple monitors
  4819. Date: Sun, 4 Sep 1994 13:14:42 GMT
  4820. Organization: Conceptual Design
  4821.  
  4822. As a result of my unusual monitor configuration, I've developed an 
  4823. awareness of problems that often crop up in applications whose 
  4824. programmers fail to think about multiple monitors. Here are  
  4825. my suggestions for good multiple monitor programming style; I 
  4826. welcome additions and comments. Perhaps someone would care to throw
  4827. in some suggestions for Pivot monitors to go with these?
  4828.  
  4829. To figure the maximum window size, check the GrayRgn, not ScreenBits. 
  4830. The user should be able to size a window across two monitors, or to 
  4831. stretch it to the dimensions of a screen that may be bigger than the 
  4832. main screen.
  4833.  
  4834. Don't assume that just because the main device is monochrome, the system 
  4835. doesn't have color. Use GetMaxDevice.
  4836.  
  4837. If it's important that a new window be displayed in color, put it on the 
  4838. screen with the greatest depth. This is especially important with 
  4839. non-draggable dialogs. It's frustrating to have a color picker 
  4840. window nailed to a monochrome monitor when there's a perfectly good 
  4841. color monitor next to it.
  4842.  
  4843. If you have a graphic with both monochrome and color versions, check 
  4844. which device it's being drawn to when deciding which version to use. 
  4845. (Some calls, such as PlotCIcon, will do this automatically.) 
  4846.  
  4847. Clicking on the zoom box of a window should position it in the screen
  4848. which it's currently occupying, rather than always hauling it to the 
  4849. main device. (Defining which screen a window is occupying in the general
  4850. case is tricky, to be sure.)
  4851.  
  4852. Remember that if your window occupies the whole main screen, it doesn't
  4853. necessarily occupy all of the desktop. It's still possible for the
  4854. user to click outside the window.
  4855.  
  4856. When bringing up a window, be sure that at least its title bar is on the
  4857. screen. If the user plays with the Monitors control panel and then 
  4858. reboots, a window which was on screen last time may be out of reach
  4859. this time. Some old DA's are especially bad about this, and can 
  4860. permanently vanish into offscreen limbo.
  4861.  
  4862. -- 
  4863.           Gary McGath
  4864.           gmcgath@condes.mv.com
  4865.  
  4866. +++++++++++++++++++++++++++
  4867.  
  4868. >From h+@nada.kth.se (Jon W{tte)
  4869. Date: Mon, 05 Sep 1994 17:34:25 +0200
  4870. Organization: Royal Institute of Something or other
  4871.  
  4872. >To figure the maximum window size, check the GrayRgn, not ScreenBits. 
  4873.  
  4874. Yes. Most apps that do this wrong, can be coerced by using the 
  4875. command key when resizing the window.
  4876.  
  4877. >Don't assume that just because the main device is monochrome, the system 
  4878. >doesn't have color. Use GetMaxDevice.
  4879.  
  4880. However, GetMaxDevice crashes on non-color machines, and if 
  4881. those are a factor, you have to check some more. I recently did 
  4882. an about box for someone else, which went pretty much like this:
  4883.  
  4884. depth = 1 ;
  4885.  
  4886. Is there color QD?
  4887. If yes, is there QuickTime?
  4888. If yes, depth = depth of GetMaxDevice()
  4889. If depth < 8, depth = 1
  4890.  
  4891. Load and draw pictures using b/w if depth = 1, else color. If 
  4892. depth is 8, use the palette of the screen the window's on 
  4893. (which is the deepest screen, to show off the colors :-)
  4894.  
  4895. QuickTime is required because of the JPEG about picture. Code 
  4896. and images for 24-bit color and black/white come in at under 40k!
  4897.  
  4898. >If you have a graphic with both monochrome and color versions, check 
  4899. >which device it's being drawn to when deciding which version to use. 
  4900. >(Some calls, such as PlotCIcon, will do this automatically.) 
  4901.  
  4902. Use DeviceLoop()
  4903.  
  4904. >Clicking on the zoom box of a window should position it in the screen
  4905. >which it's currently occupying, rather than always hauling it to the 
  4906.  
  4907. Yes! The screen with the most pixels of the window on it. It 
  4908. should also move the window as little as possible, i e first 
  4909. grow it down/right until it can grow it no more; then keep 
  4910. growing up-left 'til the screen is full.
  4911.  
  4912. >When bringing up a window, be sure that at least its title bar is on the
  4913. >screen. If the user plays with the Monitors control panel and then 
  4914.  
  4915. Yeah, this is a killer. I have an FKEY that staggers all visible 
  4916. app windows. Can do funky things to palettes, but saves the day 
  4917. occasionally :-)
  4918.  
  4919. Cheers,
  4920.  
  4921.                 / h+
  4922.  
  4923.  
  4924.  
  4925. --
  4926.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  4927.    This signature is kept shorter than 4 lines in the interests of UseNet
  4928.    S/N ratio.
  4929.  
  4930.  
  4931. +++++++++++++++++++++++++++
  4932.  
  4933. >From neil_ticktin@xplain.com (Neil Ticktin)
  4934. Date: Mon, 5 Sep 1994 17:54:25 GMT
  4935. Organization: MacTech Magazine/Xplain Corporation
  4936.  
  4937. In article <gmcgath-0409940814420001@condes.mv.com>, gmcgath@condes.mv.com
  4938. (Gary McGath) wrote:
  4939.  
  4940. >> As a result of my unusual monitor configuration, I've developed an 
  4941. >> awareness of problems that often crop up in applications whose 
  4942. >> programmers fail to think about multiple monitors. Here are  
  4943. >> my suggestions for good multiple monitor programming style; I 
  4944. >> welcome additions and comments. Perhaps someone would care to throw
  4945. >> in some suggestions for Pivot monitors to go with these?
  4946.  
  4947.  
  4948. Gary,
  4949.  
  4950. We found the similar things.  We published an article about how to support
  4951. multiple monitors a couple issues back.  We hope, as you do, that people
  4952. will provide more support for multiple monitors -- it's annoying when they
  4953. don't.
  4954.  
  4955. Thanks,
  4956. Neil
  4957.  
  4958. - ---------------------------------------------------------------------
  4959.            Neil Ticktin, MacTech Magazine (formerly MacTutor)
  4960. PO Box 250055, Los Angeles, CA 90025 * 310-575-4343 * Fax: 310-575-0925
  4961.  For more info, anonymous ftp to ftp.netcom.com and cd to /pub/xplain
  4962.   custservice@xplain.com * editorial@xplain.com * adsales@xplain.com
  4963. marketing@xplain.com * accounting@xplain.com * pressreleases@xplain.com
  4964.    progchallenge@xplain.com * publisher@xplain.com * info@xplain.com
  4965.  
  4966. +++++++++++++++++++++++++++
  4967.  
  4968. >From jonpugh@netcom.com (Jon Pugh)
  4969. Date: Mon, 5 Sep 1994 20:02:00 GMT
  4970. Organization: Will hack for food
  4971.  
  4972. Gary McGath (gmcgath@condes.mv.com) wrote:
  4973. > When bringing up a window, be sure that at least its title bar is on the
  4974. > screen. If the user plays with the Monitors control panel and then 
  4975. > reboots, a window which was on screen last time may be out of reach
  4976. > this time. Some old DA's are especially bad about this, and can 
  4977. > permanently vanish into offscreen limbo.
  4978.  
  4979. I only require that the 16 bits or so of the left or right end of the title
  4980. bar be on screen.  This allows you to slam a window offscreen into the bottom 
  4981. corners of the screen and remain there after it is closed and reopened.  I
  4982. suppose it doesn't catch the big window with both ends off screen, but I
  4983. don't think anyone's managed to get that and not minded it being reset.
  4984.  
  4985. We regularly get into window wars at work via Projector.  My compatriot has
  4986. his menubar on the little color screen (for some of the reasons outlined
  4987. before) and edits on a large b&w monitor next to it.  Then he checks in 
  4988. and I open the window half off my little color monitor and not on my 16"
  4989. color monitor.  Since the title bar is on screen, it doesn't move though.
  4990. I don't see a good way to fix this without saving the entire monitor setup.
  4991.  
  4992. Jon
  4993.  
  4994.  
  4995. +++++++++++++++++++++++++++
  4996.  
  4997. >From Charles B. Cranston <zben@ni.umd.edu>
  4998. Date: 6 Sep 1994 19:55:23 GMT
  4999. Organization: Network Infrastructure U Maryland College Park
  5000.  
  5001. It may be worth mentioning that there is an Apple Human Interface
  5002. Note on the right things to do for multiple monitors, and this
  5003. information has also been integrated into the McGraw Hill
  5004. "Macintosh Human Interface Guidelines", mostly in chapter 5.
  5005.  
  5006. It is amazing how much software does NOT do the right things,
  5007. even MPW didn't zoom correctly until 3.3 came out...
  5008.  
  5009. +++++++++++++++++++++++++++
  5010.  
  5011. >From joseph@joebloe.maple-shade.nj.us (Joseph "Moof-in'" Hall)
  5012. Date: Thu, 8 Sep 94 01:36:24 MST
  5013. Organization: comp.sys.mac.programmer.moof Advocacy
  5014.  
  5015.  
  5016. In article <jonpughCvoABD.6Bn@netcom.com> (comp.sys.mac.programmer), jonpugh@netcom.com (Jon Pugh) writes:
  5017. ) We regularly get into window wars at work via Projector.  My compatriot has
  5018. ) his menubar on the little color screen (for some of the reasons outlined
  5019. ) before) and edits on a large b&w monitor next to it.  [...]
  5020.  
  5021. I've wondered why apps don't save window position as an offset
  5022. relative to the nearest corner or something like that.  It would certainly
  5023. solve some window placement disputes.
  5024.  
  5025. =============== O Fortuna, velut Luna, statu variabilis ===============
  5026. uunet!joebloe!joseph   (602) 732-2549 day   joseph%joebloe@uunet.uu.net
  5027. 1400 N Alma School                #163               Chandler, AZ 85224
  5028. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  5029.            Be hip!  Support comp.sys.mac.programmer.moof!
  5030.  
  5031. +++++++++++++++++++++++++++
  5032.  
  5033. >From jonpugh@netcom.com (Jon Pugh)
  5034. Date: Sat, 10 Sep 1994 22:10:28 GMT
  5035. Organization: Will hack for food
  5036.  
  5037. Joseph "Moof-in'" Hall (joseph@joebloe.maple-shade.nj.us) wrote:
  5038.  
  5039. > I've wondered why apps don't save window position as an offset
  5040. > relative to the nearest corner or something like that.  It would certainly
  5041. > solve some window placement disputes.
  5042.  
  5043. That doesn't save your window size.  It's simple to just store the rect.
  5044. Of course, it wouldn't be much harder to store the offset point and the 
  5045. window height and width point either.  Sounds like it's time for some 
  5046. experimentation to see if this would buy you anything.  It sounds identical
  5047. in most cases though.
  5048.  
  5049. Jon
  5050.  
  5051.  
  5052. +++++++++++++++++++++++++++
  5053.  
  5054. >From ari@world.std.com
  5055. Date: Thu, 15 Sep 1994 06:02:23 GMT
  5056. Organization: The World Public Access UNIX, Brookline, MA
  5057.  
  5058. In article <9668AA910721.386931@klkmac014.nada.kth.se>,
  5059. Jon W{tte <h+@nada.kth.se> wrote:
  5060. >>If you have a graphic with both monochrome and color versions, check 
  5061. >>which device it's being drawn to when deciding which version to use. 
  5062. >>(Some calls, such as PlotCIcon, will do this automatically.) 
  5063. >
  5064. >Use DeviceLoop()
  5065.  
  5066. While working on my popup CDEF, I ran into a problem drawing a color
  5067. image from an offscreen graphics world when the destination rectangle
  5068. spanned two monitors with different depths. The problem arose because
  5069. the offscreen gworld was created with the depth of the deepest
  5070. monitor. The portion of the image that was copied to the color monitor
  5071. was displayed perfectly. But the portion of the image that was copied
  5072. to the black and white monitor was real ugly, since all the color
  5073. pixels got mapped to black. The only solution I could find was to use
  5074. a DeviceLoop when drawing an image that spans monitors of different
  5075. depths. Unfortunately, this meant that I couldn't use the offscreen
  5076. gworld, and the image flickers if it spans monitors with different
  5077. depths.
  5078.  
  5079. -- 
  5080. Ari Halberstadt                                 ari@world.std.com
  5081. One generation passes away, and another generation comes: but the
  5082. earth abides for ever. -- Ecclesiastes, 1:4.
  5083.  
  5084. +++++++++++++++++++++++++++
  5085.  
  5086. >From ari@world.std.com
  5087. Date: Thu, 15 Sep 1994 06:08:21 GMT
  5088. Organization: The World Public Access UNIX, Brookline, MA
  5089.  
  5090. In article <34ihfb$8c2@haven.umd.edu>,
  5091. Charles B. Cranston  <zben@ni.umd.edu> wrote:
  5092. >It is amazing how much software does NOT do the right things,
  5093. >even MPW didn't zoom correctly until 3.3 came out...
  5094.  
  5095. Well, I still think MPW misses the mark. And SADE and HyperCard are
  5096. *very* annoying. I put the Worksheet window in SADE on my small
  5097. monitor and put the source code window on my big monitor. Then, when I
  5098. hit command-F to search for something, the find dialog pops up
  5099. way-over-there on the little monitor; BLECH! HyperCard does similar
  5100. stupid things. And THINK C 7.0 even stuck my windows OFF SCREEN!!!
  5101. YES, I OPENED A WINDOW AND ITS TITLE BAR WAS HIDDEN BEHIND THE MENU
  5102. BAR! Fortunately, I've been using macs for far too long, and promptly
  5103. broke into MacsBug and set MBarHeight to 0 and dragged the windows
  5104. back to somewhere more accessable. (The alternative of editing the
  5105. menu record with MacsBug, with the associated structure and content
  5106. regions, etc. just was out of the question; I don't know what I would
  5107. have done with a PowerPC!)
  5108. -- 
  5109. Ari Halberstadt                                 ari@world.std.com
  5110. One generation passes away, and another generation comes: but the
  5111. earth abides for ever. -- Ecclesiastes, 1:4.
  5112.  
  5113. ---------------------------
  5114.  
  5115. >From qsi@cnh.wlink.nl (Peter Kocourek)
  5116. Subject: The 'aete' resource and the Script Editor
  5117. Date: 07 Sep 94 01:24:16 +
  5118. Organization: Care Net Holland
  5119.  
  5120. Hi,
  5121.  
  5122. I just had strange problem with the Script Editor and the 'aete' resource. I
  5123. had already added a few events to the aete resource, and everything was
  5124. working fine. Then I added a simple event, with no required parameters or any
  5125. fancy stuff. That's when the weirdness began.
  5126.  
  5127. When I sent the event to myself, everything was fine. But when I tried to send
  5128. the event from the Script Editor, my event handler returned errAEParamMissed,
  5129. when I was making the routine check for missed parameters. Yet I had indicated
  5130. in the aete, that the event did not have any parameters...
  5131.  
  5132. So, trying to find out what kind of parameter the Script Editor was passing
  5133. along, I discovered that the type of the missed parameter was 'keyw', and the
  5134. type of keyword I'd missed was '----'. I merrily put in code to get the
  5135. parameter, but that call to AEGetParamPtr came back with errAEDescNotFound,
  5136. even though I had just extracted the relevant information about the missing
  5137. parameter from the AppleEvent!
  5138.  
  5139. I checked the Event Log in the Script Editor, and sure enough, when sending my
  5140. event "foo", the Log said it had sent "foo current application". And that
  5141. despite the fact that it said in the aete resource that I wanted no
  5142. parameters, direct or otherwise.
  5143.  
  5144. Ultimately, after a lot of frustration, I found the cause of the problem: in
  5145. the aete resource, I had specified a the direct parameter as being of type
  5146. typeNull, but I had the "is optional" flag off. Once I switched that on,
  5147. everything worked fine.
  5148.  
  5149. Is this the way the Script Editor is supposed to behave? I thought that a
  5150. typeNull type indicated that no parameter was to be included under any
  5151. circumstances. And the errAEDescNotFound still bothers me. If I find the type
  5152. of the missed parameter, surely I should be able to extract it from the
  5153. AppleEvent; in this case the AE Manager seemed to be telling me that there is
  5154. an additional parameter in there, but that it can't find it. What's going on?
  5155.  
  5156.  
  5157. YHS:QSI!
  5158.  
  5159. +++++++++++++++++++++++++++
  5160.  
  5161. >From jonpugh@netcom.com (Jon Pugh)
  5162. Date: Sat, 10 Sep 1994 21:53:36 GMT
  5163. Organization: Will hack for food
  5164.  
  5165. Peter Kocourek (qsi@cnh.wlink.nl) wrote:
  5166.  
  5167. > I just had strange problem with the Script Editor and the 'aete' resource. 
  5168.  
  5169. > [snip]
  5170.  
  5171. > Ultimately, after a lot of frustration, I found the cause of the problem: in
  5172. > the aete resource, I had specified a the direct parameter as being of type
  5173. > typeNull, but I had the "is optional" flag off. Once I switched that on,
  5174. > everything worked fine.
  5175.  
  5176. Ed Lai has been telling people to make sure they set the optional bit if
  5177. they used a direct parameter of typeNull (i.e. none) for quite some time.  I
  5178. guess now we know why.  ;)
  5179.  
  5180. Regardless of whether it is intential or not, it is the way it works, so be
  5181. sure to do this.
  5182.  
  5183. Jon
  5184.  
  5185. +++++++++++++++++++++++++++
  5186.  
  5187. >From lai@apple.com (Ed Lai)
  5188. Date: 14 Sep 1994 16:16:31 GMT
  5189. Organization: Apple
  5190.  
  5191. In article <4cb_9409071502@cnh.wlink.nl>, qsi@cnh.wlink.nl (Peter Kocourek)
  5192. wrote:
  5193.  
  5194. > Hi,
  5195. > I just had strange problem with the Script Editor and the 'aete' resource. I
  5196. > had already added a few events to the aete resource, and everything was
  5197. > working fine. Then I added a simple event, with no required parameters or any
  5198. > fancy stuff. That's when the weirdness began.
  5199. > When I sent the event to myself, everything was fine. But when I tried to send
  5200. > the event from the Script Editor, my event handler returned errAEParamMissed,
  5201. > when I was making the routine check for missed parameters. Yet I had indicated
  5202. > in the aete, that the event did not have any parameters...
  5203. > So, trying to find out what kind of parameter the Script Editor was passing
  5204. > along, I discovered that the type of the missed parameter was 'keyw', and the
  5205. > type of keyword I'd missed was '----'. I merrily put in code to get the
  5206. > parameter, but that call to AEGetParamPtr came back with errAEDescNotFound,
  5207. > even though I had just extracted the relevant information about the missing
  5208. > parameter from the AppleEvent!
  5209. > I checked the Event Log in the Script Editor, and sure enough, when sending my
  5210. > event "foo", the Log said it had sent "foo current application". And that
  5211. > despite the fact that it said in the aete resource that I wanted no
  5212. > parameters, direct or otherwise.
  5213. > Ultimately, after a lot of frustration, I found the cause of the problem: in
  5214. > the aete resource, I had specified a the direct parameter as being of type
  5215. > typeNull, but I had the "is optional" flag off. Once I switched that on,
  5216. > everything worked fine.
  5217. > Is this the way the Script Editor is supposed to behave? I thought that a
  5218. > typeNull type indicated that no parameter was to be included under any
  5219. > circumstances. And the errAEDescNotFound still bothers me. If I find the type
  5220. > of the missed parameter, surely I should be able to extract it from the
  5221. > AppleEvent; in this case the AE Manager seemed to be telling me that there is
  5222. > an additional parameter in there, but that it can't find it. What's going on?
  5223. > YHS:QSI!
  5224.  
  5225. This is not a problem with the script editor. I always consider this to
  5226. be a problem of AppleScript, although I was told there are reason to do
  5227. it that way so it can not be fixed. As you discoverd, if the direct 
  5228. parameter is of type typeNull, then AppleScript would send a typeNull
  5229. as the direct parameter. The AppleEvent manager checks every parameter
  5230. you have accessed. If you ask for parameter missed, then it returns
  5231. the keyword '----'. When you try to get the direct parameter, AEM
  5232. found the type to be typeNull, which means no parameter, so
  5233. AEM got fooled has say errAEDescNotFound. The last part can be
  5234. considered to be an AEM bug, although it is almost excusable.
  5235. -- 
  5236. /* Disclaimer: All statments and opinions expressed are my own */
  5237. /* Edmund K. Lai                                               */
  5238. /* Apple Computer, MS303-3A                                    */
  5239. /* 20525 Mariani Ave,                                          */
  5240. /* Cupertino, CA 95014                                         */
  5241. /* (408)974-6272                                               */
  5242. zW@h9cOi
  5243.  
  5244. ---------------------------
  5245.  
  5246. >From eschen@molbio.cbs.umn.edu (Art Eschenlauer)
  5247. Subject: can extensions send appleevents?
  5248. Date: Wed, 14 Sep 1994 13:07:32 GMT
  5249. Organization: University of Minnesota, Twin Cities
  5250.  
  5251. Last night I was plughing around in my System 7.0.1 software, looking at
  5252. SIZE resources. I found that the Finder has the HighLevelEventAware flag
  5253. set but that the System does not. The dogma is that to send AppleEvents success-
  5254. fully using AESend, an 'application' must have the HighLevelEventAware flag
  5255. set. I want to send appleevents from an extension that is called via patches
  5256. to drawmenubar, systemmenu, and menuselect from within ANY application (that
  5257. uses the menubar). How will I get in trouble here? 1. Will I be hosed if the
  5258. calling app is not HighLevelEventAware? 2. Will I be hosed all the time because
  5259. the system is not HighLevelEventAware? 3. By some bizarre quirk of fate, will
  5260. I be successful all the time because the Finder is HighLevelEventAware (I want
  5261. to send 'odoc' events) or because code resources aren't restricted by th
  5262. HighLevelEventAware bit? 4. Am I hosed all the time because code resources
  5263. cannot send appleevents?
  5264.  
  5265. Thanks!
  5266.  
  5267. -Art
  5268.  
  5269. --
  5270. eschen@molbio.cbs.umn.edu (Art Eschenlauer, U of M Agronomy & Plant Genetics)
  5271. "The only things that you can take with you are those that you have given
  5272. away." - Sign under Peter Bailey's picture in "It's a Wonderful Life"
  5273.  
  5274. +++++++++++++++++++++++++++
  5275.  
  5276. >From tnleeuw@cs.vu.nl (Leeuw van der TN)
  5277. Date: Wed, 14 Sep 1994 14:42:54 GMT
  5278. Organization: Fac. Wiskunde & Informatica, VU, Amsterdam
  5279.  
  5280. Maybe you could make your Control Panel communicate with a background
  5281. application, that sends the AppleEvents to the Finder?
  5282. I think you can use Gestalt for that.
  5283.  
  5284. Just a passing thought.
  5285.  
  5286. --Tim van der Leeuw
  5287. tnleeuw@cs.vu.nl
  5288.  
  5289.  
  5290. +++++++++++++++++++++++++++
  5291.  
  5292. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  5293. Date: Wed, 14 Sep 1994 20:52:09 GMT
  5294. Organization: Apple Computer
  5295.  
  5296. Art Eschenlauer, eschen@molbio.cbs.umn.edu writes:
  5297. > I want to send appleevents from an extension that is called via patches
  5298. > to drawmenubar, systemmenu, and menuselect from within ANY application (that
  5299. > uses the menubar). How will I get in trouble here?
  5300.  
  5301. The Apple Event Manager doesn't care what _code_ is running, only what
  5302. _process_ is active. If your patch tries to send an AE, what happens depends
  5303. on what app (the Finder is an app) is currently active. If it's AE-aware (as
  5304. per the SIZE rsrc) you'll succeed. If not, you'll fail, probably with the
  5305. infamous -903 error.
  5306. These days most apps are AE-aware, but some still are not.
  5307. Extensions like QuicKeys and KeyQuencer get around this problem by having a
  5308. small faceless bg app that they can have send the event for them. Of course,
  5309. you have to have some way of telling the app to send an event; this probably
  5310. boils down to some shared memory that you access via a Gestalt selector.
  5311.  
  5312. --Jens Alfke                           jens_alfke@powertalk.apple.com
  5313.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  5314.  
  5315. +++++++++++++++++++++++++++
  5316.  
  5317. >From gurgle@dnai.com (Pete Gontier)
  5318. Date: Thu, 15 Sep 1994 00:27:49 -0800
  5319. Organization: Integer Poet Software
  5320.  
  5321. In article <Cw4FJG.Dvw@news.cis.umn.edu>, eschen@molbio.cbs.umn.edu (Art
  5322. Eschenlauer) wrote:
  5323.  
  5324. > 1. Will I be hosed if the calling app is not HighLevelEventAware?
  5325.  
  5326. Yes.
  5327.  
  5328. > 2. Will I be hosed all the time because the system is not HighLevelEventAware?
  5329.  
  5330. No.
  5331.  
  5332. > 3. By some bizarre quirk of fate, will
  5333. > I be successful all the time because the Finder is HighLevelEventAware (I want
  5334. > to send 'odoc' events) or because code resources aren't restricted by th
  5335. > HighLevelEventAware bit?
  5336.  
  5337. No.
  5338.  
  5339. > 4. Am I hosed all the time because code resources cannot send appleevents?
  5340.  
  5341. No.
  5342.  
  5343. Your point #1 is the important one here. When you call the AppleEvent
  5344. Manager, everything it wants to know is based on the context of the
  5345. current application. So when your code resource calls the AEM, you can
  5346. pretend the AEM "thinks" that the current application is making the call.
  5347.  
  5348. Consequently, if you can arrange for the calling app to be AE-aware, you
  5349. win. Since Finder is guaranteed to be AE-aware, you might be able to defer
  5350. sending your AE until Finder becomes the curreent app. (You can call
  5351. WakeUpProcess against it to make sure this happens quickly.)
  5352.  
  5353. Receiving AppleEvents is another matter entirely, of course, because your
  5354. handlers could conflict with the handlers of the current application.
  5355. There is probably a way to deal with this, but I haven't had to
  5356. investigate it yet, so I don't know much more than this.
  5357.  
  5358. There are some folks who know about undocumented interfaces to the AEM
  5359. which ignore the AE-aware status of the current app. These people claim
  5360. that even though the interfaces are undocumented there is enough
  5361. third-party software which uses the interfaces that it's unlikely Apple
  5362. will be able to break these interfaces in the future. (Probably these
  5363. people have written some of that software.) I won't names names to protect
  5364. the innocent, but now that I have mentioned this, perhaps someone will
  5365. pipe up.
  5366.  
  5367. -- 
  5368.  
  5369.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  5370.  
  5371.  "Yeah, that's fucking bizarre. That's one I'd never heard before. 
  5372.   Not even on the internet."
  5373.      -- Bob Mould, on rumors that he and Grant Hart were lovers
  5374.         when H¸sker D¸ broke up, _Spin_ magazine interview, 10/94
  5375.  
  5376. +++++++++++++++++++++++++++
  5377.  
  5378. >From fixer@faxcsl.dcrt.nih.gov (Chris Disavow Twinkies Tate)
  5379. Date: Thu, 15 Sep 1994 13:24:10 GMT
  5380. Organization: DCRT, NIH, Bethesda, MD
  5381.  
  5382. In article <gurgle-1509940027490001@dynamic-224.dnai.com>, gurgle@dnai.com (Pete Gontier) writes:
  5383. >
  5384. >Receiving AppleEvents is another matter entirely, of course, because your
  5385. >handlers could conflict with the handlers of the current application.
  5386. >There is probably a way to deal with this, but I haven't had to
  5387. >investigate it yet, so I don't know much more than this.
  5388.  
  5389. As I recall, there's sample code from DTS around called something like 
  5390. "AEcdev," which uses an FBA as an AppleEvent "dispatcher."  When you
  5391. want to send an AE from your (non-application) code, you talk to the
  5392. FBA (presumably launched at system startup?), and away it goes.
  5393.  
  5394. Now: I'd have to dig into how the code resource and the FBA communicate.
  5395. Can standalone code use bare PPC?  Or does it have to go through something
  5396. like the Gestalt mechanism that INIT/cdev combinations frequently use to
  5397. communicate?
  5398.  
  5399. Either way, it seems that one could come up with a (small) FBA whose job
  5400. it is to handle two-way dispatch of AppleEvents, passing them along to
  5401. the proper standalone-code recipients.  The real problem, I think, is
  5402. tracking which chunk of standalone code is supposed to be receiving a
  5403. given AppleEvent.  Hmmmm....
  5404.  
  5405. __________
  5406. Christopher Tate                                   fixer@faxcsl.dcrt.nih.gov
  5407. GM/CS$ d(--) H s:- g+ p0 au a- w+ v+(-*) C++ U+(--) E++ N++ K W---(++)$ M++$
  5408.    V+ -po+ Y+ t+ 5-- j+ G? tv b+++ D+++ e++ u++(---) h--- f r+++ n+ y+++
  5409.  
  5410. +++++++++++++++++++++++++++
  5411.  
  5412. >From gurgle@dnai.com (Pete Gontier)
  5413. Date: Thu, 15 Sep 1994 09:22:01 -0800
  5414. Organization: Integer Poet Software
  5415.  
  5416. In article <1994Sep15.132410.1393@alw.nih.gov>, fixer@faxcsl.dcrt.nih.gov wrote:
  5417.  
  5418. > As I recall, there's sample code from DTS around called something like 
  5419. > "AEcdev," which uses an FBA as an AppleEvent "dispatcher."  When you
  5420. > want to send an AE from your (non-application) code, you talk to the
  5421. > FBA (presumably launched at system startup?), and away it goes.
  5422. > Now: I'd have to dig into how the code resource and the FBA communicate.
  5423. > Can standalone code use bare PPC?
  5424.  
  5425. That, in fact, is how the DTS code sample you mention works. :-)
  5426.  
  5427. > Or does it have to go through something like the Gestalt mechanism that 
  5428. > INIT/cdev combinations frequently use to communicate?
  5429.  
  5430. And this is how I have done it in the past. PPC is too much of a hassle if
  5431. you have no event loop.
  5432.  
  5433. > The real problem, I think, is
  5434. > tracking which chunk of standalone code is supposed to be receiving a
  5435. > given AppleEvent.
  5436.  
  5437. Well, if you have a one-to-one relation between FBA and code resource,
  5438. there isn't much confusion. However, the original poster was talking about
  5439. sending an AppleEvent from within a patch to Menu Manager traps. I don't
  5440. think he's going to succeed in receiving an AppleEvent in such a context
  5441. no matter how hard he tries. :-)
  5442.  
  5443. -- 
  5444.  
  5445.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  5446.  
  5447.  "Yeah, that's fucking bizarre. That's one I'd never heard before. 
  5448.   Not even on the internet."
  5449.      -- Bob Mould, on rumors that he and Grant Hart were lovers
  5450.         when H¸sker D¸ broke up, _Spin_ magazine interview, 10/94
  5451.  
  5452. ---------------------------
  5453.  
  5454. End of C.S.M.P. Digest
  5455. **********************
  5456.  
  5457.  
  5458.